Professional Documents
Culture Documents
Tema 3 Procesos
http://www.ditec.um.es/so
Departamento de Ingenieria y Tecnologia de Computadores Universidad de Murcia
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)
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 1.4 Descripcin de procesos (Carretero, 3.3), (Tanenbaum, 2.1.6), 1.5 Control de procesos (Stallings, 3.3)
(Stallings, 3.2) (Tanenbaum, 2.1), (Carretero, 3.5)
Distintos usuarios realizan tareas concurrentemente Alternancia rpida entre procesos: cambio de contexto
Pseudoparalelismo
Aparentemente secuenciales, ocultan la dicultad de las interrupciones Es la unidad para describir las tareas de cada usuario y para asignar recursos Recordemos: proceso, dinmico (PC, pila, registros, variables...); programa, esttico
Sistemas Operativos p. 4/63
Modelo de procesos:
Unos procesos crean a otros procesos Se puede ver como una jerarqua de procesos
Se puede incluir la posibilidad de suspender y reanudar procesos Aliviar la carga temporalmente Depuracin
Sistemas Operativos p. 8/63
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
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
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
(Stallings, 3.2)
Para administrar los procesos se usa una tabla de procesos. Cada entrada de la tabla es un PCB (Process Control Block)
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 Childrens CPU time Time of next alarm
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
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
Cdigo ensamblador
Guardar contexto del proceso actual
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 Thread Kernel space Kernel (a) Thread Kernel (b)
Sistemas Operativos p. 20/63
Espacio de direcciones Variables globales Ficheros abiertos Procesos hijos Cronmetros Seales Semforos Informacin contable
Process
Kernel
2. Hilos. Caractersticas.
No existe proteccin (ni se necesita) entre los hilos de un mismo proceso
Comparten variables globales Sincronizacion
Mejoran el rendimiento (menos sobrecarga del kernel) Creacin ms rpida Comunicacin ms eciente Soportados por el S.O (modo ncleo) o por bibliotecas (modo usuario)
Ventajas
El ncleo mantiene la tabla de hilos, que es un subconjunto de la de procesos Las llamadas bloqueantes no necesitan funciones especiales Los fallos de pgina no suponen un problema Al bloquearse un hilo, el ncleo puede conmutar a otro hilo de otro proceso
Inconvenientes
Las llamadas bloqueantes son llamadas al sistema, e.d. ms costosas La creacin y destruccin de procesos es ms costoso Reutilizacin de hilos
Sistemas Operativos p. 25/63
ndice
3. Introduccin a la comunicacin entre procesos, a la sincronizacin (Tanenbaum, 2.3), (Carretero, C5), (Stallings, C5) 3.1 Condiciones de carrera o de competencia 3.2 Seccin crtica 3.3 Bloqueos
sincronizacin
Motivacin Si el Sistema Operativo protege y aisla los procesos, cmo se sincronizan un conjunto de procesos? El S.O. tambin provee mecanismos de comunicacin y sincronizacin entre procesos (IPC,
Inter-Process Communication)
Imprescindible en threads: Todos los hilos comparten un espacio de memoria Sincronizacin Adems, todos los hilos (y todos los procesos) hacen llamadas al sistema
Cada hilo de ejecucin de cada proceso que llama al ncleo, se convierte en un hilo dentro del ncleo Puede haber varias llamadas pendientes en un instante Por ello, necesidad de que el propio ncleo est diseado en base a hilos
Vista exterior
Vista interior
Tarea 1
Tarea 2
Tarea 3
Varios hilos en modo usuario pueden terminar solicitando la misma llamada al sistema, o llamadas al sistema que comparten cdigo en el ncleo Resultado: aunque en modo usuario no existan los hilos, en modo ncleo es importante que se disee como si los tuviera
Sistemas Operativos p. 28/63
Hiloi :
{ <Accin> o pthread_mutex_lock (&mutex); /* Seccin crtica */ o A = A + 1; pthread_mutex_unlock (&mutex); }
Sistemas Operativos p. 30/63
3.3 Bloqueos
Un bloqueo se produce cuando varios procesos no pueden continuar su ejecucin (se bloquean entre ellos mismos) al luchar por algn recurso. Por ejemplo, dos procesos:
Proceso P ... lock(A) ... lock(B) ... ... ... unlock(A) ... unlock(B) ... Proceso Q ... lock(B) ... lock(A) ... ... ... unlock(B) ... unlock(A) ...
Sistemas Operativos p. 31/63
ndice
4. Planicacin de procesos (Carretero, 3.7), (Stallings, C9), (Tanenbaum, 4.1 Planicadores 4.2 Planicacin "primero en llegar, primero en ser servido" 4.3 Planicacin "primero el trabajo ms corto" 4.4 Planicacin round robin 4.5 Planicacin por prioridad 4.6 Planicacin de colas de mltiples niveles con realimentacin 4.7 Planicacin a corto, medio y largo plazo
2.5)
4.1 Planicadores
En un momento dado puede haber varios procesos listos: La parte del S.O. que decide es el planicador siguiendo un algoritmo de planicacion El despachador (dispatcher) debe: Cambiar de contexto, cambiar a modo usuario, reiniciar el proceso adecuado en la posicin en que qued Metas: Equidad Ecacia Tiempo de respuesta, tiempo de espera, tiempo de regreso Rendimiento o Productividad
Sistemas Operativos p. 34/63
Diagrama de colas
0 Tiempo medio:
24+27+30 3
24 27 30
27
30
2+6+4+5+6 5 4+2+3+4+9 5
C, D y E llegan en el instante 3! El descrito es NO APROPIATIVO. Para hacerlo APROPIATIVO: Primero el que tenga menor tiempo restante (SRTF)
1 F
Varias colas con distintos niveles de prioridad Cada cola propio algoritmo de planicacin Tambin planicacin entre las distintas colas
Para una mayor exibilidad: realimentacion Paso de colas de mayor a menor prioridad Paso de colas de menor a mayor prioridad
Parmetros de diseo: Nmero de colas Algoritmos de planicacin Criterio de ascenso y descenso Cola inicial de un proceso nuevo, etc.
Selecciona de entre todos los procesos listos en memoria cul pasar a la CPU Selecciona qu procesos pasarn de memoria a disco (se suspendern) y viceversa Selecciona qu trabajos por lotes dejar pasar a la cola de listos en memoria
5 Multiprocesamiento
Normalmente, se consideran sistemas con una sola CPU Sin embargo, el desarrollo tecnolgico permite cada vez ms construir sistemas con varias CPUs Los ms comunes son los multiprocesadores simtricos (SMP)
La memoria es compartida Pueden tener una cach Se conectan por un bus
Shared memory CPU CPU M CPU Cache Bus (a) (b) (c) Private memory Shared memory CPU CPU M
CPU
5 Multiprocesamiento (ii)
SMP El ncleo puede ejecutarse en cualquiera de los procesadores Adems, se puede disear de manera que partes del ncleo se ejecuten en cada procesador Un ncleo que soporte SMP es ms complejo: Dos procesadores no intenten ejecutar el mismo proceso Intentar aprovechar el TLB y la cach Mecanismos de sincronizacin y cdigo del ncleo reentrante Tolerancia a fallos Planicacin bidimensional: qu proceso y en qu CPU?
Sistemas Operativos p. 48/63
ndice
7. Procesos en UNIX (Tanenbaum, 10.3), (Stallings, 3.4, 4.6, 10.310.4), 7.1 Estructuras de datos 7.2 Creacin de procesos (fork y execve) 7.3 Planicacin de procesos en UNIX 8. Procesos en Windows 2000 (Tanenbaum, 11.4), (Stallings, 4.4, 10.5)
(Carretero, 11.3)
7 Procesos en Unix
Cada proceso con dos partes: Parte de ncleo: pila y contador de programa propios Parte de usuario 9 estados posibles:
1. Ejecucin en modo usuario 2. Ejecucin en modo ncleo 3. Listo en memoria 4. Bloqueado en memoria 5. Listo suspendido 6. Bloqueado suspendido 7. Apropiado (preempted) 8. Creado 9. Zombie
La estructura de usuario
Tambin se copia la estructura de usuario El proceso hijo Listo Valor devuelto: PID al padre, 0 al hijo
exec(3) No se crea un proceso nuevo mismo pid Se reemplazan cdigo, datos, pila, etc.
Sistemas Operativos p. 54/63
Adems, se hace el siguiente clculo cada segundo: Base Nmero NICE. Usuario 0
void schedule(void) { repeat_schedule: /* * Default process to select.. */ next = idle_task(this_cpu); c = -1000; list_for_each(tmp, &runqueue_head) { p = list_entry(tmp, struct task_struct, run_list); if (can_schedule(p, this_cpu)) { int weight = goodness(p, this_cpu, prev->active_mm if (weight > c) c = weight, next = p; } }
Windows 2000 es capaz de soportar varios modelos de procesos (por ejemplo, los distintos subsistemas de entorno) Los procesos en windows 2000: Se implementan como objetos Pueden tener varios hilos, pero al menos uno (planicados por el ncleo) Pueden tener hilos a nivel de usuario (bras) Existe tambin el concepto de Trabajo: conjunto de procesos relacionados que comparten recursos Los objetos proceso e hilo tienen capacidades de sincronizacin El ncleo no conserva relaciones entre los procesos que crea
Sistemas Operativos p. 60/63
24 16
User priorities
Procesos en OSO
Acceso a memoria de vdeo Actividad desde la sai del timer Implementacin de procesos
Sistemas Operativos p 64
. 18
hz 2
18.2 veces por segundo se incrementa el cdigo ascii de la posicin 0x100 de la memoria de vdeo
Sistemas Operativos p 66
. 18
hz 2
18.2 veces por segundo toma el control la sai del timer mediante el mecanismo de interrupcin. NORMALMENTE NO PINTA
Sistemas Operativos p 67
Carga en los registros los valores congelados en la pila del proceso elegido y salta al proceso elegido (dispatcher)
OSO consigue construir la abstraccin de proceso secuencial : Procesos (procesadores virtuales con
las interrupciones ocultas)
Implementacin de la abstraccin
Sistemas Operativos p 69