Publicado el 10 de Febrero del 2017
1.202 visualizaciones desde el 10 de Febrero del 2017
1,7 MB
69 paginas
Creado hace 18a (02/11/2006)
Sistemas Operativos
Tema 3 Procesos
http://www.ditec.um.es/so
Departamento de Ingenieria y Tecnologia de Computadores
Universidad de Murcia
Sistemas Operativos p. 1/63
˝ndice
1. Introduccin (Carretero, C3), (Tanenbaum, C2), (Stallings, C3)
2. Hilos o hebras (Tanenbaum, 2.2), (Stallings, 4.1), (Carretero, 3.6)
3. Introduccin a la comunicacin entre procesos, a la
sincronizacin (Tanenbaum, 2.3), (Carretero, C5), (Stallings, C5)
4. Planicacin de procesos (Carretero, 3.7), (Stallings, C9), (Tanenbaum,
2.5)
5. Multiprocesamiento (Stallings, 4.2), (Tanenbaum, 8.1)
6. Procesamiento en tiempo real (Stallings, 10.2)
7. Procesos en UNIX (Tanenbaum, 10.3), (Stallings, 3.4, 4.6, 10.310.4),
(Carretero, 11.3)
8. Procesos en Windows 2000 (Tanenbaum, 11.4), (Stallings, 4.4, 10.5)
Sistemas Operativos p. 2/63
˝ndice
1. Introduccin
1.1 Concepto de proceso (Tanenbaum, 2.1), (Carretero, 3.1)
1.2 Creacin y terminacin de procesos (Tanenbaum, 2.1)
1.3 Estados de un proceso. Suspensin y reanudacin
(Tanenbaum, 2.1), (Carretero, 3.5)
1.4 Descripcin de procesos (Carretero, 3.3), (Tanenbaum, 2.1.6),
(Stallings, 3.2)
1.5 Control de procesos (Stallings, 3.3)
Sistemas Operativos p. 3/63
1.1 Concepto de Proceso
La CPU es un recurso importantsimo
MÆs procesos que CPUs ) ¿quØ proceso la usa?
Ocurre igual con otros recursos limitados (p.ej. la memoria)
Distintos usuarios realizan tareas concurrentemente
Alternancia rÆpida entre procesos: cambio de contexto )
Pseudoparalelismo
Modelo de procesos: Aparentemente secuenciales,
ocultan la dicultad de las interrupciones
Es la unidad para describir las tareas de cada usuario y
para asignar recursos
Recordemos: proceso, dinÆmico (PC, pila, registros,
variables...); programa, estÆtico
Sistemas Operativos p. 4/63
1.1 Concepto de Proceso (ii)
¿QuØ proceso usa la CPU?
Algoritmo de planicacin
Ventajas de tener varios procesos en ejecucin:
compartir recursos soft y hard
acelerar cÆlculos con varias CPUs
modularidad
comodidad
etc.
Sistemas Operativos p. 5/63
1.2 Creacin de Procesos
Necesario un mecanismo de creacin y terminacin de
procesos
Creacin de procesos:
Inicio del sistema
Procesos interactivos vs. demonios (daemons)
Llamada al sistema para crear procesos
UNIX fork+exec, Win32 CreateProcess
El usuario inicia un proceso
Ya sea en modo grÆco o en algœn shell
Inicio de un trabajo por lotes
Normalmente en sistemas de mainframe
Sistemas Operativos p. 6/63
1.2 Terminacin de Procesos
Un proceso puede terminar por varias razones:
Terminacin normal (voluntaria)
UNIX exit, Win32 ExitProcess
Terminacin por error (voluntaria)
TambiØn usando esas llamadas al sistema, pero
devolviendo un cdigo de error indicando el fallo
Error fatal (involuntaria)
Terminado por otro proceso (involuntaria)
UNIX kill, Win32 TerminateProcess
Jerarqu·a de procesos
Unos procesos crean a otros procesos
Se puede ver como una jerarqua de procesos
Sistemas Operativos p. 7/63
1.3 Estados de un proceso
Estados de un proceso
En ejecuci·on: tiene la CPU
Listo: detenido, otro tiene la CPU
Bloqueado: no se puede ejecutar, espera algœn
evento
En ejecución
1
Bloqueado
3
4
2
Listo
1. El proceso se bloquea en espera de datos
2. El planificador elige otro proceso
3. El planificador elige a este proceso
4. Datos disponibles
Se puede incluir la posibilidad de suspender y
reanudar procesos
Aliviar la carga temporalmente
Depuracin
Sistemas Operativos p. 8/63
1.3 Estados de un proceso (i)
Nuevo. Se acaba de crear y aunque tiene el BCP, no ha sido
cargado en memoria
Ejecutando.
Listo. EstÆ preparado para ejecutarse cuando haya oportunidad
Bloqueado. No se puede ejecutar hasta que se cumpla un evento
determinado o se complete una operacin de E/S
Saliente. Se ha quitado del grupo de procesos ejecutables porque
ha sido abortado por alguna razn
Sistemas Operativos p. 9/63
1.3 Estados de un proceso (ii)
Nuevo ) Listo. Se intenta que no haya demasiados procesos activos
Listo ) Ejecutando. Se selecciona un proceso Listo y se le asigna la CPU
Ejecutando ) Saliente. El proceso naliza por cualquier motivo
Ejecutando ) Listo. Acaba el quantum o en algunos SSOO se desbloquea un
proceso prioritario
Ejecutando ) Bloqueado. Solicita algo por lo que debe esperar
Bloqueado ) Listo. Sucede lo que estaba esperando
Listo/Bloqueado ) Saliente. No se muestra. A veces un padre puede terminar la
ejecucin de un hijo alguna razn
Sistemas Operativos p. 10/63
1.3 Estados de un proceso (iii)
Listo. EstÆ en memoria principal disponible para ejecucin
Bloqueado. EstÆ en memoria principal esperando un evento
Listo suspendido. EstÆ en memoria secundaria esperando un evento
Bloqueado suspendido. EstÆ en memoria secundaria disponible para ejecutarse
Sistemas Operativos p. 11/63
1.3 Estados de un proceso (iv)
Bloqueado ) Bloqueado suspendido. Si no hay procesos listos, un proceso
bloqueado se pasa a disco para hacer hueco en memoria o para liberar memoria.
Bloqueado suspendido ) Listo suspendido. Sucede lo que estaba esperando.
Listo suspendido ) Listo. Si no hay procesos listos, necesitaremos traer uno para
ejecutarlo. TambiØn puede que un proceso listo suspendido tenga la mayor prioridad.
Listo ) Listo suspendido. Normalmente se suspenden procesos bloqueados, pero
se puede preferir suspender un proceso listo de baja prioridad ante uno bloqueado de
alta prioridad. Se busca obtener mÆs memoria libre.
Nuevo ) Listo suspendido/Listo. Creamos el proceso cuando hay muchos
bloqueados, o inmediatamente.
Bloqueado suspendido ) Bloqueado. Un proceso termina liberando memoria, uno
de los bloqueados susp. tiene la mayor prioridad y el SO sospecha que el evento que
espera sucederÆ en breve.
Ejecutando ) Listo/Suspendido. Un proceso de mayor prioridad despierta de
bloqueado suspendido.
Cualquier estado ) Saliente.
Sistemas Operativos p. 12/63
1.4 Descripcin de Procesos (Stallings, 3.2)
Para administrar los procesos se usa una tabla de
procesos.
Cada entrada de la tabla es un PCB (Process Control Block)
Memory management
Pointer to text segment
Pointer to data segment
Pointer to stack segment
File management
Root directory
Working directory
File descriptors
User ID
Group ID
Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters
Process ID
Parent process
Process group
Signals
Time when process started
CPU time used
Children’s CPU time
Time of next alarm
Sistemas Operativos p. 13/63
1.5 Control de Procesos (i)
Modos de ejecucin
Modo usuario
Modo nœcleo (root, protegido, supervisor...)
El proceso estÆ compuesto por la parte usuario (lo
que el usuario implementa) y la parte de nœcleo (las
rutinas del nœcleo que utiliza)
¿Cmo se crea un proceso?
Asignar un ID œnico al proceso (y entrada en la tabla de
procesos)
Asignar espacio para el proceso
Iniciar el PCB
Incluir al proceso en los algoritmos de planicacin
Actualizar otras tablas (p.ej. contabilidad)
Sistemas Operativos p. 14/63
1.5 Control de Procesos (ii)
¿CuÆndo cambiar de proceso?
Interrupcin de reloj
Interrupcin de E/S
Llamada al sistema
Fallo de memoria (fallo de memoria virtual)
Todo a travØs de interrupciones (hw. o sw.)
No es lo mismo un cambio de proceso que un cambio de modo
Cambiar de modo: guarda registos, cambia pila, memoria virtual...
Cambiar de proceso: actualizar BCP, mover entre colas, seleccionar nuevo
proceso, activarlo...
Sistemas Operativos p. 15/63
1.5 Control de Procesos (iii)
Mecanismo de cambio de modo
1. El PC pasa a apuntar a la rutina de tratamiento de la excepcin
2. Cambia de modo usuario a modo nœcleo
3. El SO guarda el contexto del proceso interrumpido en su BCP
Mecanismo de cambio de proceso
1. Salvamos el estado del procesador (PC, registros...)
2. Actualizar campos BCP (estado, contabilidad, auditora...)
3. Mover el BCP a la cola apropiada (Listo, bloqueado..)
4. Seleccin del nuevo proceso a ejecutar
5. Actualizar el BCP del proceso elegido (estado Ejecutando...)
6. Actualizar estructuras de datos de gestin de memoria
7. Restaurar el estado del procesador cuando se interrumpi el
nuevo proceso
Sistemas Operativos p. 16/63
Cambio de contexto (i)
Proceso
i
Código
Datos
Pila
Datos depositados
por el hardware
Proceso
j
Código
Datos
Pila
Datos retirados
por el hardware
Código
ensamblador
Guardar contexto
del proceso actual
Restaurar contexto
del nuevo proceso
Código de la
llamada al
sistema
Código del
planificador
Sistemas Operativos p. 17/63
Cambio de contexto (ii)
Sistemas Operativos p. 18/63
¿Dnde estÆ el SO?
Sistemas Operativos p. 19/63
2. Hilos, Hebras o Threads
Hasta ahora, un proceso es, a la vez:
Unidad de asignaci·on de recursos
Unidad de planicaci·on y ejecuci·on
Aunque no tiene por quØ: hilo ) unidad de
planicacin, proceso ) unidad de asign. de recursos
Un proceso puede tener varios hilos
Process 1
Process 1
Process 1
Process
User
space
Kernel
space
Thread
Kernel
(a)
Thread
Kernel
(b)
Sistemas Operativos p. 20/63
2. Hilos, Hebras o Threads (ii)
Elementos p
Comentarios de: Sistemas Operativos - Tema 3 - Procesos (0)
No hay comentarios