Sistemas Operativos Tema 3 Procesos 1 Tema 3

  • Slides: 34
Download presentation
Sistemas Operativos Tema 3: Procesos 1

Sistemas Operativos Tema 3: Procesos 1

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 2

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 3

1. Modelado de procesos v Suposición: sistema monoprocesador Tema 3: Procesos Ø El tiempo

1. Modelado de procesos v Suposición: sistema monoprocesador Tema 3: Procesos Ø El tiempo de procesador se reparte entre los procesos en ejecución v Abstracción: suponer a cada proceso un procesador virtual que ejecuta instrucciones a velocidad uniforme P 4 P 3 P 2 P 1 t 4

1. Modelado de procesos v Comportamiento real: se reparte tiempo de procesador Tema 3:

1. Modelado de procesos v Comportamiento real: se reparte tiempo de procesador Tema 3: Procesos Ø Los procesos alternan periodos de ejecución con periodos de inactividad P 4 P 3 P 2 P 1 t 5

1. Modelado de procesos Tema 3: Procesos Consecuencias: v Tiempo que tarda en ejecutarse

1. Modelado de procesos Tema 3: Procesos Consecuencias: v Tiempo que tarda en ejecutarse un proceso tiempo consumido de CPU Ø Una misma actividad puede tardar distintos tiempos en distintas ejecuciones v Operaciones que dependan del tiempo: deben realizarse mediante primitivas del sistema Ø En concreto: bucles de espera ¡PROHIBIDOS! … int retardo = 15000; while (retardo > 0) retardo--; … 6

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 7

2. Rendimiento de la multiprogramación Tema 3: Procesos Atención, pregunta: v Procesos A y

2. Rendimiento de la multiprogramación Tema 3: Procesos Atención, pregunta: v Procesos A y B: Ø 50% de su tiempo: operaciones de cálculo Ø 50% de su tiempo: operaciones bloqueantes v Lanzando A y B en paralelo… ¿conseguiríamos mantener la CPU ocupada el 100% del tiempo? B A t 8

2. Rendimiento de la multiprogramación v Proceso A: v Proceso B: Tema 3: Procesos

2. Rendimiento de la multiprogramación v Proceso A: v Proceso B: Tema 3: Procesos Cálculo Operaciones bloqueantes B … A t 9

2. Rendimiento de la multiprogramación Tema 3: Procesos v ¿Cuántos procesos harían falta para

2. Rendimiento de la multiprogramación Tema 3: Procesos v ¿Cuántos procesos harían falta para mantener la CPU ocupada el 100% del tiempo? v Porcentaje de ocupación depende de: Ø Nº de procesos Ø Porcentaje de tiempo que usan CPU v Estudio probabilístico: análisis de un sistema modelado como cadena de Markov: Ø Si n= nº de procesos, sistema con n+1 estados (S 0…Sn) Ø Sistema está en estado Si ↔ hay i procesos bloqueados Ø = frecuencia media bloqueo, μ = frecuencia media desbloqueo Ø Estudio en periodo de tiempo dt suficientemente pequeño: dt dt S 0 S 1 μdt S 2 2μdt 3μdt Sn-1 Sn n)? ¿P(S nμdt 10

2. Rendimiento de la multiprogramación dt S 0 S 1 μdt dt S 2

2. Rendimiento de la multiprogramación dt S 0 S 1 μdt dt S 2 2μdt 3μdt dt Sn-1 Sn nμdt v Si no hay fallos: todas las operaciones bloqueantes terminan: probabilidad de que ocurra una transición Si→Si+1 = probabilidad de que ocurra Si+1→Si: … Tema 3: Procesos dt 11

2. Rendimiento de la multiprogramación Tema 3: Procesos v El sistema estará siempre en

2. Rendimiento de la multiprogramación Tema 3: Procesos v El sistema estará siempre en algún estado: v Sacando P 0 como factor común: v De donde ya podemos despejar P 0: 12

Tema 3: Procesos 2. Rendimiento de la multiprogramación v Coeficiente de espera ( ):

Tema 3: Procesos 2. Rendimiento de la multiprogramación v Coeficiente de espera ( ): proporción de tiempo que los procesos invierten en operaciones bloqueantes 13

2. Rendimiento de la multiprogramación v /μ se puede poner fácilmente en función de

2. Rendimiento de la multiprogramación v /μ se puede poner fácilmente en función de : Tema 3: Procesos ¿Con B o con V? v Rendimiento de la multiprogramación: =1 - c 14

Tema 3: Procesos 2. Rendimiento de la multiprogramación =0. 1 =0. 2 =0. 3

Tema 3: Procesos 2. Rendimiento de la multiprogramación =0. 1 =0. 2 =0. 3 =0. 4 =0. 5 =0. 6 =0. 7 =0. 8 =0. 9 n=0 0 0 0 0 n=1 90. 0 80. 0 70. 0 60. 0 50. 0 40. 0 30. 0 20. 0 10. 0 n=2 99. 4 97. 6 94. 0 88. 2 80. 0 69. 0 55. 0 38. 5 19. 8 n=3 100. 0 99. 8 99. 1 97. 5 93. 8 86. 6 74. 1 54. 9 29. 4 n=4 100. 0 99. 9 99. 6 98. 5 95. 2 86. 9 68. 9 38. 6 n=5 100. 0 99. 9 99. 7 98. 6 94. 2 80. 1 47. 5 n=6 100. 0 99. 9 99. 6 97. 8 88. 3 55. 9 n=7 100. 0 99. 9 99. 3 93. 7 63. 8 n=8 100. 0 99. 8 97. 0 71. 1 n=9 100. 0 99. 9 98. 7 77. 6 n=10 100. 0 99. 5 83. 2 1 - c (% de ocupación de CPU) para distintos valores de y n 15

Tema 3: Procesos 2. Rendimiento de la multiprogramación 1 - c (% de ocupación

Tema 3: Procesos 2. Rendimiento de la multiprogramación 1 - c (% de ocupación de CPU) para distintos valores de y n 16

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 17

3. Estado de los procesos Tema 3: Procesos v Durante ejecución procesos alternan periodos

3. Estado de los procesos Tema 3: Procesos v Durante ejecución procesos alternan periodos de actividad e inactividad: pasan por distintos estados v Diagrama mínimo de estados para cualquier sistema: activación PREPARADO Planificación no apropiativa ACTIVO apropiación fin de bloqueo BLOQUEADO Planificación apropiativa 18

3. Estado de los procesos v Estructura mínima de un planificador de procesos Tema

3. Estado de los procesos v Estructura mínima de un planificador de procesos Tema 3: Procesos apropiación procesos preparados … procesos bloqueados … Planificador de procesos bloqueo 19

3. Estado de los procesos v Diagrama de estados ampliado ina n ó i

3. Estado de los procesos v Diagrama de estados ampliado ina n ó i c TERMINADO rm EN ESPERA activación PREPARADO ACTIVO bloqueo apropiación BLOQUEADO fin de bloqueo s rso s cu ble re oni p dis TRANSICIÓN fin (re de b dis curs loqu po os eo nib no les ) Tema 3: Procesos te 20

Tema 3: Procesos 3. Estado de los procesos Funciones del planificador de procesos v

Tema 3: Procesos 3. Estado de los procesos Funciones del planificador de procesos v Llevar el control del estado de cada proceso v Decidir qué proceso se activará y por cuánto tiempo v Asignar el procesador v Retirar el procesador v Atender las sincronizaciones o comunicaciones entre procesos v Atender las interrupciones Ø Atender no implica necesariamente tratar 21

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 22

4. El PCB Tema 3: Procesos v Process Control Block: conjunto de datos relevantes

4. El PCB Tema 3: Procesos v Process Control Block: conjunto de datos relevantes para el SO sobre cada proceso v Contenido habitual de PCB en cualquier SO: Ø Identificación el proceso (PID) Ø Estado del procesador (si proceso no está activo) Ø Información relativa a la planificación • Estado del proceso • Tiempo que ha estado activo • Prioridad, tipo de proceso… Ø Información relativa a gestión de memoria • Mapa de memoria • Paginas/Segmentos asignados Ø Información sobre Lectura/Escritura • Archivos abiertos • Dispositivos asignados Ø… 23

4. El PCB v Gestión de PCB’s: Tema 3: Procesos Ø En espacio dinámico

4. El PCB v Gestión de PCB’s: Tema 3: Procesos Ø En espacio dinámico Ø Tabla de PCB’s Gestión de PCB’s en espacio dinámico v Idea: se reserva parte del espacio de memoria del propio para almacenar su PCB v Ventajas: Ø No se limita de antemano el nº de procesos Ø No se desperdicia espacio de memoria v Inconvenientes: Ø Puede ser ineficiente el acceso al PCB Ø En sistemas operativos micronucleo viola aislamiento Ø ¡Peligro! Pone una estructura del sistema al alcance de usuario 24

4. El PCB Tema 3: Procesos Gestión de PCB’s mediante tabla v Idea: se

4. El PCB Tema 3: Procesos Gestión de PCB’s mediante tabla v Idea: se crea una tabla de PCB’s. Tamaño se fija… Ø Tiempo de compilación Ø Arranque del sistema Ø Instalación del sistema operativo v Tabla se puede indexar por PID v Organización lógica: listas enlazadas Ø Se pueden añadir campos para enlazar entradas libres, procesos relacionados entre sí, etc. ocupadas libres PCB padre sig … 0 1 … - 1 … … 0 5 … 2 … - 15 … … … 25

4. El PCB Tema 3: Procesos Gestión de PCB’s mediante tabla (cont. ) v

4. El PCB Tema 3: Procesos Gestión de PCB’s mediante tabla (cont. ) v Ventajas: Ø Simplicidad Ø Robustez v Inconvenientes: Ø Número de procesos limitado por tamaño de tabla Ø Desperdicia entradas no usadas Ø En sistemas con organización micronúcleo: • Varias tablas: núcleo, administración de memoria, de archivos… • Campos de uso común deben replicarse 26

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 27

5. Conmutación de procesos Tema 3: Procesos v Conmutación: secuencia de pasos a llevar

5. Conmutación de procesos Tema 3: Procesos v Conmutación: secuencia de pasos a llevar a cabo para retirar la CPU a un proceso y asignársela a otro v Causas que producen conmutación: Ø Internas al proceso: llamada al sistema bloqueante Ø Externas al proceso: apropiación v Secuencia de conmutación A→B: 1. Pasar a modo supervisor (implícito) 2. Guardar estado CPU en PCB de proceso A 3. Actualizar estado de A e insertarlo en la lista que proceda 4. Tratar suceso que causa conmutación 5. Elegir proceso B (aplicando criterio de planificación) 6. Actualizar estado de B a activo 7. Reestablecer estado de CPU a partir de PCB de B Ø Modo de ejecución y siguiente instrucción a ejecutar forman parte de dicho estado 28

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3.

Tema 3: Procesos Índice: 1. Modelado de procesos 2. Rendimiento de la multiprogramación 3. Estados de los procesos 4. El PCB 5. Conmutación de procesos 6. Hilos 29

6. Hilos Tema 3: Procesos v Supongamos un proceso que realiza dos actividades paralelizables.

6. Hilos Tema 3: Procesos v Supongamos un proceso que realiza dos actividades paralelizables. ¿Sería interesante convertirlo en dos procesos? A B ¿ A B ? v Si sistema es multiprocesador: siempre es interesante v Si sistema no multiprocesador: una actividad puede aprovechar los tiempos de bloqueo de la otra 30

6. Hilos v Problema: dependencias entre actividades Tema 3: Procesos Ø Seguramente, compartirán variables,

6. Hilos v Problema: dependencias entre actividades Tema 3: Procesos Ø Seguramente, compartirán variables, estructuras de datos… Ø Acceso a dichos recursos mediante mecanismos de IPC: • Complicado • Ineficiente A A B B 31

6. Hilos Tema 3: Procesos v Solución: implementar actividades A y B mediante hilos

6. Hilos Tema 3: Procesos v Solución: implementar actividades A y B mediante hilos v Hilo: secuencia de ejecución dentro de un proceso v Comparten todos los recursos del proceso: Ø Espacio de memoria Ø Archivos abiertos Ø Código Ø… A v Primitivas provistas por SO: Ø Creación de hilos Ø Destrucción de hilos Ø Sincronización entre hilos B v NO se implementan: Ø Mecanismos de protección entre hilos (del mismo proceso) Ø Mecanismos de comunicación entre hilos (del mismo proceso) 32

6. Hilos v Implementación de hilos en el núcleo: fácil Tema 3: Procesos Ø

6. Hilos v Implementación de hilos en el núcleo: fácil Tema 3: Procesos Ø Planificación de hilos, en lugar de procesos Ø Por cada hilo: pocos recursos • Una pila • Un estado de la CPU v Si un sistema no implementa hilos: implementación interna a los procesos: Ø Librería que implementa un planificador dentro de cada proceso Ø Ejemplo: C-Threads 33

34

34