tema3 procesos

download tema3 procesos

of 69

Transcript of tema3 procesos

Sistemas OperativosTema 3 Procesoshttp://www.ditec.um.es/soDepartamento de Ingenieria y Tecnologia de Computadores Universidad de Murcia

Sistemas Operativos p. 1/63

ndice1. 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

ndice1. 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)

Sistemas Operativos p. 3/63

1.1 Concepto de ProcesoLa CPU es un recurso importantsimoMs procesos que CPUs qu proceso la usa? Ocurre igual con otros recursos limitados (p.ej. la memoria)

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, estticoSistemas Operativos p. 4/63

Modelo de procesos:

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 clculos con varias CPUs modularidad comodidad etc.

Sistemas Operativos p. 5/63

1.2 Creacin de ProcesosNecesario 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 grco o en algn shell Inicio de un trabajo por lotes Normalmente en sistemas de mainframe

Sistemas Operativos p. 6/63

1.2 Terminacin de ProcesosUn proceso puede terminar por varias razones: Terminacin normal (voluntaria) UNIX exit, Win32 ExitProcess Terminacin por error (voluntaria) Tambin 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 TerminateProcessJerarqua 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 procesoEstados de un proceso En ejecucion: tiene la CPU Listo: detenido, otro tiene la CPU Bloqueado: no se puede ejecutar, espera algn eventoEn ejecucin 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 DepuracinSistemas 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 raznSistemas 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. Tambin 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 ms 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)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

Sistemas Operativos p. 13/63

1.5 Control de Procesos (i)Modos de ejecucin Modo usuario Modo ncleo (root, protegido, supervisor...) El proceso est compuesto por la parte usuario (lo que el usuario implementa) y la parte de ncleo (las rutinas del ncleo que utiliza) Cmo se crea un proceso? Asignar un ID nico al proceso (y entrada en la tabla deprocesos)

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)Cundo cambiar de proceso? Interrupcin de reloj Interrupcin de E/S Llamada al sistema Fallo de memoria (fallo de memoria virtual) Todo a travs de interrupciones (hw. o sw.) No es lo mismo un cambio de proceso que un cambio de modoCambiar 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 ncleo 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 procesoSistemas Operativos p. 16/63

Cambio de contexto (i)Procesoi Cdigo Datos PilaDatos depositados por el hardware

Cdigo ensambladorGuardar contexto del proceso actual

Cdigo de la llamada al sistema

Procesoj Cdigo Datos PilaDatos retirados por el hardware

Restaurar contexto del nuevo proceso

Cdigo 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 ThreadsHasta ahora, un proceso es, a la vez: Unidad de asignacion de recursos Unidad de planicacion y ejecucion

Aunque no tiene por qu: hilo unidad de planicacin, proceso unidad de asign. de recursos Un proceso puede tener varios hilosProcess 1 Process 1 Process 1 Process

User space Thread Kernel space Kernel (a) Thread Kernel (b)Sistemas Operativos p. 20/63

2. Hilos, Hebras o Threads (ii)Elementos por hilo Elementos por proceso

Contador de programa Pila Estado + contexto Memoria privada (var. locales)

Espacio de direcciones Variables globales Ficheros abiertos Procesos hijos Cronmetros Seales Semforos Informacin contableProcess

Thread 2 Thread 1 Thread 3

Thread 1's stack

Thread 3's stack

Kernel

Sistemas Operativos p. 21/63

2. Para qu quiero hilos?Descomponer la aplicacin en mltiples subprocesos secuenciales paralelos Permiten solapar E/S y cmputo dentro de un mismo proceso Con mltiples CPUs se puede conseguir verdadero paralelismo Son ms rpidos de crear y destruir Cmo haras sin hilos...?Procesador de textos: guardar automticamente, operaciones peridicas... Hoja de clculo: Reclculo de las celdas. Servidor web: Hilo despachador que asigna consultas a hilos trabajadores. Aplicacin que procesa gran cantidad de datos: solapamos E/S y clculo. Se te ocurre alguno ms?

Sistemas Operativos p. 22/63

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)

Sistemas Operativos p. 23/63

2. Hilos en modo usuario.Ventajas El nucleo no sabe que existen Tabla de subprocesos privada para cambios de contexto Cambio de contexto mucho ms rpido entre hilos (no se pasa al kernel) Cada proceso puede tener su algoritmo de planicacin Inconvenientes Llamadas bloqueantes al sistema funciones no bloqueantes Fallos de pgina Tienen que ceder la CPU entre ellos Conmutacin en el mismo proceso Precisamente queremos hilos en procesos que tienen mucha E/S para obtener paralelismo, es decir, que se estn bloqueando muy frecuentemente.Sistemas Operativos p. 24/63

2. Hilos en modo ncleo.Process Thread Process Thread User space

Kernel space Run-time system

Kernel Thread table Process table

Kernel Process table Thread table

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

InconvenientesLas llamadas bloqueantes son llamadas al sistema, e.d. ms costosas La creacin y destruccin de procesos es ms costoso Reutilizacin de hilosSistemas Operativos p. 25/63

ndice3. 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

Sistemas Operativos p. 26/63

3. Comunicacin entre procesos:

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 sistemaCada 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

Sistemas Operativos p. 27/63

Hilos dentro del ncleoProceso 1 Proceso 2 Proceso 3

Vista exterior

Vista interior

Tarea 1

Tarea 2

Tarea 3

Corrutinas a nivel de Ncleo

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 tuvieraSistemas Operativos p. 28/63

3.1 Condiciones de carreraDiferentes hilos que acceden a zonas comunes de memoria El planicador cambia entre los distintos hilos de forma impredecible A veces los hilos tienen que hacer una tarea de forma atmica. Por ejemplo: Hiloi :{ } o A = A + 1;

Se tienen que ejecutar en exclusin mutua

Sistemas Operativos p. 29/63

3.2 Secciones CrticasLas Secciones o regiones crticas son trozos de programa que se tienen que ejecutar en exclusion mutua Para implementarlos: Semforos (mutex) Monitores Variables Condicinpthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

Hiloi :{ o pthread_mutex_lock (&mutex); /* Seccin crtica */ o A = A + 1; pthread_mutex_unlock (&mutex); }Sistemas Operativos p. 30/63

3.3 Bloqueos

(Stallings, 6.1 y 6.2)

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

3.3 Bloqueos (ii)Posible esquema de ejecucin: P obtiene el candado A Q obtiene el candado B P espera a obtener el mutex B, que lo tiene Q Q espera a obtener el mutex A, que lo tiene P Ninguno puede continuar Los sistemas con mltiples procesos/hilos son difciles de disear y tienen que tener en cuenta estas circunstancias

Sistemas Operativos p. 32/63

ndice4. 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 plazo2.5)

Sistemas Operativos p. 33/63

4.1 PlanicadoresEn 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 ProductividadSistemas Operativos p. 34/63

4.1 Planicadores (ii)Planicacin apropiativa El proceso puede ser interrumpido por el S.O. para entregar la CPU a otro proceso Planicacin no apropiativa El proceso se ejecuta hasta que cede el control al S.O.

Sistemas Operativos p. 35/63

Diagrama de colas

Sistemas Operativos p. 36/63

4.1 Planicadores (iii)Los procesos son impredecibles:Aunque siempre siguen el patrn: Rfagas de CPU seguidas de Rfagas de E/S La duracin de las rfagas no se sabe a priori, aunque se puede inferir de la historia de la ejecucin del proceso Procesos limitados por CPU Hacen muy poca E/S Su principal tarea es el uso de la CPU para realizar clculos Procesos limitados por E/S Realizan procesos que requieren de poco clculo y mucha entrada/salida P.ej. Un shell, un comprobador de consistencia de un sistema de cheros...

Sistemas Operativos p. 37/63

Rfagas de CPU y de E/S

Sistemas Operativos p. 38/63

.2 Primero en llegar, primero en ser servidFCFS (Primero en llegar, primero en ser servido) Se le asigna la CPU al primer proceso que la requiere FIFO Proceso Duracin P1 24 P2 3 P3 3P1 P2 P3

0 Tiempo medio:24+27+30 3

24 27 30 27

Es NO APROPIATIVA. Efecto convoy.Sistemas Operativos p. 39/63

4.3 SJF (Primero el trabajo ms corto)Para procesos por lotes (o de duracin conocida):P2 P3 P1

0

3

6

30

Tambin para procesos interactivos prediccion Et = Et1 + (1 )Tt1 para t = 2, 3, 4, . . . ; [0, 1]

ESTIMACIN TIEMPO REAL T0 T1 1 T0 + 1 T1 T2 2 2 1 T0 + 1 T1 + 1 T2 T3 4 4 2Sistemas Operativos p. 40/63

4.3 SJF (ii)Para que SJF sea ptimo es necesario disponer de todos los procesos de forma simultnea: A Tiempo de ejecucin Tiempo de llegada Orden posible: Orden mejor: NO POSIBLE: A, B, C, D, E B, C, D, E, A C, D, E, A, B 2 0 B 4 0 C 1 3 D 1 3 E 1 3 = 4.6 = 4.4

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)

Sistemas Operativos p. 41/63

4.4 Planicacin Round Robin o circularA cada proceso se le asigna un quantum de tiempo: Termina antes de consumir el quantum Queda bloqueado (E/S) Consume su tiempo Cada proceso espera a lo sumo (n 1)q unidades de tiempo Importante: Longitud del quantum Quantum pequeo: Ineciente Tiempo de administracin > Tiempo de ejecucin Quantum grande: Los procesos esperan mucho

Sistemas Operativos p. 42/63

4.5 Planicacin por prioridadNormalmente los procesos tienen asociada una prioridad Se ejecuta el proceso con mayor prioridad Asignacin de prioridades esttica o dinmica Por ejemplo: para favorecer a los procesos limitados por E/S:Prioridad F =1 2

Q = 100ms (quantum) (50ms) prio. 2; F =1 50

1 F

, donde F fraccin de quantum que utiliz (2ms) prio. 50

Puede ser apropiativa o no Se puede dar bloqueo indenido o inanicion: Ir disminuyendo la prioridad de los que se ejecutan Ir aumentando la prioridad de los que no se ejecutanSistemas Operativos p. 43/63

4.6 Planicacin de mltiples niveles con realimentacin

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.

Sistemas Operativos p. 44/63

.7 Planicacin a corto, medio y largo plazPlanicacin de n niveles No todos los procesos caben en memoria:Planicador a corto plazo (PCP)

Planicador a medio plazo (PMP)

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

Planicador a largo plazo (PLP)

Sistemas Operativos p. 45/63

.7 Planicacin a corto, medio y largo plaz

Sistemas Operativos p. 46/63

5 Multiprocesamiento

(Stallings, 4.2), (Tanenbaum, 8.1)

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 busShared memory CPU CPU M CPU Cache Bus (a) (b) (c) Private memory Shared memory CPU CPU M

CPU

M

Sistemas Operativos p. 47/63

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

6 Procesamiento en tiempo realLa exactitud de un sistema no slo depende del resultado sino tambin del instante en el que se produzca En un S.O de tiempo real, algunas tareas tienen restricciones estrictas de tiempo de ejecucin, otras pueden ser peridicas Caractersticas necesarias de los S.O. de tiempo real:Determinismo Las operaciones se realizan en instantes jos y predeterminados. Los servicios a interrupciones tardan un tiempo predecible Control del usuario El usuario puede modicar el algoritmo de planicacin, se permiten prioridades, etc. Fiabilidad Normalmente controlan sistemas sensibles Tolerancia a fallos

Sistemas Operativos p. 49/63

6 Procesamiento en tiempo real (ii)Caractersticas de los S.O. de tiempo real actuales: Cambios rpidos entre procesos e hilos Pequeo tamao (funcionalidad mnima necesaria) Respuesta rpida a interrupciones Multitarea con herramientas de sincronizacin (semforos, seales, etc.) Archivos secuenciales especiales para adquisicin de datos Planicacin basada en prioridades Tiempo mnimo con interrupciones deshabilitadas Primitivas para control estricto del tiempo, alarmas, temporizadores, etc.

Sistemas Operativos p. 50/63

ndice7. 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)

Sistemas Operativos p. 51/63

7 Procesos en UnixCada 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

Sistemas Operativos p. 52/63

7.1 Estructuras de datosEl ncleo guarda dos estructuras: Tabla de procesosReside en memoria Parmetros de planicacin (prioridad, etc.) Imagen de la memoria (o posicin en disco) Mscara de seales (cules se ignoran, etc.) Estado del proceso, tamao, pid, uid, etc. Se intercambia junto al proceso. Datos validos solo en ejecucion Registros de la mquina Manejadores de seales Descriptores de cheros Contabilidad

La estructura de usuario

Sistemas Operativos p. 53/63

7.2 Creacin de procesos (fork y exec)fork(2) El proceso padre llama a fork() El ncleo asigna un pid al nuevo hijo Tabla de procesos del padre hijo Se copian segmentos de datos y pila. El cdigo se comparte

Tambin se copia la estructura de usuario El proceso hijo Listo Valor devuelto: PID al padre, 0 al hijoexec(3) No se crea un proceso nuevo mismo pid Se reemplazan cdigo, datos, pila, etc.Sistemas Operativos p. 54/63

7.3 Planicacin de procesos en UNIXAlgoritmo de dos niveles con PCP y PMP El PCP utiliza mltiples colas con realimentacin Ejecuta el primer proceso de la cola de mayor prioridad Normalmente Q = 100ms, Reloj = 50 60 Hz Cada quantum = 5 o 6 marcas se suman a la prioridad del proceso menos prioridadUso de CPU = Uso de CPU / 2. Nueva prioridad = Base + Uso de CPU

Adems, se hace el siguiente clculo cada segundo: Base Nmero NICE. Usuario 0

Un proceso en modo ncleo no puede ser expulsado

Sistemas Operativos p. 55/63

7.3 Planicacin de procesos en UNIX (ii)LinuxCada proceso tiene una prioridad (normalmente 20) y se utiliza el nmero nice para hacer: 20 - nice Cada proceso tiene tambin un cuanto, contado en jifes (10ms) Para cada proceso se calcula un valor de bondad: Mxima para los procesos en tiempo real Ms prioridad a los procesos que no consumen su cuanto completo Mnima para los que han consumido su cuanto Se elige el proceso de mayor bondad Cuando todos los procesos listos se quedan sin cuanto: cuanto = (cuanto/2) + prioridad

Sistemas Operativos p. 56/63

7.3 Linux 2.4.22 kernel/sched.cGoodness (no-realtime)inline int goodness( ... ) { weight = p->counter; if (!weight) goto out; #ifdef CONFIG_SMP /* Give a largish advantage to the same processor... */ /* (this is equivalent to penalizing other processors) */ if (p->processor == this_cpu) weight += PROC_CHANGE_PENALTY; #endif weight += 20 - p->nice; goto out; out: return weight; }

Sistemas Operativos p. 57/63

7.3 Linux 2.4.22 kernel/sched.c (ii)

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; } }

Sistemas Operativos p. 58/63

7.3 Linux 2.4.22 kernel/sched.c (iii)/* Do we need to re-calculate counters? */ if (unlikely(!c)) { struct task_struct *p; for_each_task(p) p->counter = (p->counter >> 1) + NICE_TO_TICKS(p->nice); goto repeat_schedule; } // next es el proceso a seleccionar...

Sistemas Operativos p. 59/63

Procesos en Windows 2000

(Tanenbaum, 11.4), (Stallings, 4.4, 10

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 creaSistemas Operativos p. 60/63

8 Procesos en Windows 2000 (ii)Job Address space Thread Process User stack

Process handle table

Kernel mode thread stack P T T Access token T T P

Sistemas Operativos p. 61/63

8 Procesos en Win. 2000 PlanicacinWindows 2000 es apropiativo El planicador se lanza por los siguientes eventos: Un proceso se bloquea (semforo, E/S) Un proceso enva una seal a un objeto (equivale a una llamada al sistema) Se agota el quantum Termina una operacin de E/S Termina algn temporizador El algoritmo de planicacin es de mltiples colas con prioridad y realimentacin, con 32 niveles, 31: tiempo real 015: procesos del usuario Al terminar la E/S de un proceso, se aumenta su prioridad (+1 disco, +2 serie, +6 teclado)Sistemas Operativos p. 62/63

8 Procesos en Win. 2000 Planicacin (ii)Priority 31 System priorities Next thread to run

24 16

User priorities

8

1 Zero page thread 0 Idle threadSistemas Operativos p. 63/63

Procesos en OSOAcceso a memoria de vdeo Actividad desde la sai del timer Implementacin de procesos

Sistemas Operativos p 64

Procesos en OSO Acceso a memoria de vdeo

Cambia carcter Espera un ratoPrograma que hace un barrido ascii en la posicin 200 de la memoria de vdeoSistemas Operativos p 65

Procesos en OSO Actividad desde la sai del Timer (i)

. 18

hz 218.2 veces por segundo se incrementa el cdigo ascii de la posicin 0x100 de la memoria de vdeo

Sistemas Operativos p 66

Procesos en OSO Actividad desde la sai del Timer (ii)

. 18

hz 218.2 veces por segundo toma el control la sai del timer mediante el mecanismo de interrupcin. NORMALMENTE NO PINTA

Sistemas Operativos p 67

Procesos en OSO Implementacin de procesos (i)Entrada al kernel:- llamada al sistemainstruccin int 22h (vector 22) apilan flags y direccin de retorno

- activacin elctrica de cablecable de timer (vector 8) cable de teclado (vector 9) Stack Pointer: Registros SS y SP

Congela el contenido de los registros en la pila del proceso interrumpido

cambiando current cambia de proceso (planificador)

Carga en los registros los valores congelados en la pila del proceso elegido y salta al proceso elegido (dispatcher)

Salta al proceso elegido(desapila flags y direccin de retorno) Sistemas Operativos p 68

Procesos en OSO Implementacin de procesos (ii)

OSO consigue construir la abstraccin de proceso secuencial : Procesos (procesadores virtuales conlas interrupciones ocultas)

Implementacin de la abstraccin

Sistemas Operativos p 69