Sistemas Operativos Tema 4 Procesos 1 Tema 4
































- Slides: 32
Sistemas Operativos Tema 4: Procesos 1
Tema 4: 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 4: 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 4: 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 4: 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 4: 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 4: 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 4: 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 4: Procesos Cálculo Operaciones bloqueantes B … A t 9
2. Rendimiento de la multiprogramación Tema 4: 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 Ø Coeficiente de espera: ¿Con B o v Resultado del análisis de un modelo simplificado: con V? (¡Pues menos mal que es simplificado!) 10
Tema 4: 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 % de ocupación de CPU para distintos valores de y n 11
Tema 4: Procesos 2. Rendimiento de la multiprogramación % de ocupación de CPU para distintos valores de y n 12
Tema 4: 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 13
3. Estado de los procesos Tema 4: 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 14
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 4: Procesos te 15
Tema 4: 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 16
4. El PCB Tema 4: 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 Ø… 17
4. El PCB Tema 4: 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 … … … 18
4. El PCB Tema 4: 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 19
Tema 4: 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 20
5. Conmutación de procesos Tema 4: 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 21
Tema 4: 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
6. Hilos Tema 4: 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 23
6. Hilos v Problema: dependencias entre actividades Tema 4: Procesos Ø Seguramente, compartirán variables, estructuras de datos… Ø Acceso a dichos recursos mediante mecanismos de IPC: • Complicado • Ineficiente A A B B 24
6. Hilos Tema 4: 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) 25
6. Hilos v Implementación de hilos en el núcleo: fácil Tema 4: 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 v Algunos lenguajes de programación incluyen soporte para hilos: Ø ADA Ø JAVA 26
6. Hilos en Java Tema 4: Procesos v En Java, toda aplicación tiene al menos un hilo: class principal { … public static void main (String args[]) {. . . } } v Dicho hilo principal puede crear nuevos hilos 27
6. Hilos Tema 4: Procesos Hilos en Java (cont. ) v Formas de crear hilos en Java: Ø Por herencia Ø Por delegación Creación de hilos por herencia: class mi. Hilo extends Thread { … public void run() { … } } … mi. Hilo hilo= new mi. Hilo(. . . ); hilo. set. Priority(…); hilo. set. Daemon(…); … hilo. start(); hilo. run(); … hilo. suspend(); … ! 28
6. Hilos Tema 4: Procesos Hilos en Java (cont. ) Ventaja: v Objetos así creados son objetos Thread Ø Heredan la funcionalidad de Thread: pueden usar los métodos dicha clase para controlarse a sí mismos Inconveniente: v En Java, la herencia es simple… Ø ¿Y si necesitamos heredar funcionalidad de otra clase? 29
6. Hilos en Java (cont. ) Tema 4: Procesos Creación de hilos por delegación: class mi. Hilo implements Runnable { … public void run() { … } } … mi. Hilo hilo= new mi. Hilo(. . . ); Thread t= new Thread(hilo); t. set. Priority(…); t. set. Daemon(…); … t. start(); … v Ventaja: no se condiciona el diseño v Inconveniente: hilo no puede controlarse a sí mismo 30
6. Hilos Tema 4: Procesos v Patrón recomendado: class mi. Hilo implements Runnable { private Thread hilo; … public mi. Hilo(…) { hilo= new Thread(this); … hilo. start(); } public void run() { hilo. suspend(); … } } 31
32