La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos Tema 3: Procesos.

Presentaciones similares


Presentación del tema: "Sistemas Operativos Tema 3: Procesos."— Transcripción de la presentación:

1 Sistemas Operativos Tema 3: Procesos

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

3 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 3

4 1. Modelado de procesos P4 P3 P2 P1 t
Tema 3: Procesos 1. Modelado de procesos Suposición: sistema monoprocesador El tiempo de procesador se reparte entre los procesos en ejecución Abstracción: suponer a cada proceso un procesador virtual que ejecuta instrucciones a velocidad uniforme Recordar el objetivo de la multiprogramación. Dicho objetivo es que el procesador nunca esté inactivo mientas haya algún proceso que pueda ejecutar código. Cuando un proceso se bloquea se aprovecha el tiempo que está bloqueado para activar otros procesos. Operaciones de cálculo: significa operaciones que usan la CPU (no necesariamente cálculo matemático, ojo!) Operaciones bloqueantes: son operaciones cuya duración superan en varios órdenes de magnitud el tiempo medio de ejecución de las instrucciones, y por consiguiente no es admisible mantener la CPU a la espera de su terminación P4 P3 P2 P1 t

5 1. Modelado de procesos P4 P3 P2 P1 t
Tema 3: Procesos 1. Modelado de procesos Comportamiento real: se reparte tiempo de procesador Los procesos alternan periodos de ejecución con periodos de inactividad P4 P3 P2 P1 t

6 1. Modelado de procesos Consecuencias:
Tema 3: Procesos 1. Modelado de procesos Consecuencias: Tiempo que tarda en ejecutarse un proceso  tiempo consumido de CPU Una misma actividad puede tardar distintos tiempos en distintas ejecuciones Operaciones que dependan del tiempo: deben realizarse mediante primitivas del sistema En concreto: bucles de espera ¡PROHIBIDOS! Los bucles de espera están prohibidos porque No sirven de nada: en distintas ejecuciones pueden generar distintos retardos Malgastan tiempo de CPU int retardo = 15000; while (retardo > 0) retardo--;

7 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 7

8 2. Rendimiento de la multiprogramación
Tema 3: Procesos 2. Rendimiento de la multiprogramación Atención, pregunta: Procesos A y B: 50% de su tiempo: operaciones de cálculo 50% de su tiempo: operaciones bloqueantes Lanzando A y B en paralelo… ¿conseguiríamos mantener la CPU ocupada el 100% del tiempo? Si los periodos de bloqueo de un proceso están perfectamente sincronizados con los periodos de cálculo del otro, el procesador sí se mantendrá ocupado el 100% del tiempo B A t

9 Operaciones bloqueantes
Tema 3: Procesos 2. Rendimiento de la multiprogramación Proceso A: Proceso B: Cálculo Operaciones bloqueantes En este caso, aunque ambos procesos emplean el 50% del tiempo en cálculo y el 50% en operaciones bloqueantes, no hay forma de aprovechar la totalidad de los periodos de bloqueo para hacer cálculos. Es por ello por lo que hay periodos de tiempo en que ambos procesos están bloqueados, y el procesador ocioso. B A t

10 2. Rendimiento de la multiprogramación
Tema 3: Procesos 2. Rendimiento de la multiprogramación ¿Cuántos procesos harían falta para mantener la CPU ocupada el 100% del tiempo? Porcentaje de ocupación depende de: Nº de procesos Porcentaje de tiempo que usan CPU Estudio probabilístico: análisis de un sistema modelado como cadena de Markov: Si n= nº de procesos, sistema con n+1 estados (S0…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: Suposiciones: dt es lo suficientemente pequeño para que durante este periodo de tiempo… Sólo puede empezar o acabar una operación bloqueante No entra ningún proceso nuevo No acaba ningún proceso No falla ningún proceso Un único proceso activo (un solo procesador) Nótese: 1/= tiempo medio entre peticiones bloqueantes. 1/μ=duración media de las operaciones bloqueantes La probabilidad por la que se pasa de un estado al siguiente es la probabilidad de que el único proceso activo se bloquee, es decir, la duración del periodo de observación multiplicado por la frecuencia media de bloqueo, dt La probabilidad por la que se pasa de un estado al anterior es la probabilidad de que un proceso se desbloquee, es decir, la duración del periodo de observación multiplicado por la frecuencia media con la que los procesos se desbloquean, multiplicado por el número de procesos bloqueados (pues se puede desbloquear uno cualquiera de ellos). Lo que nos interesa: probabilidad de que el sistema esté en el estado Sn (todos los procesos bloqueados) (click) dt dt dt dt S0 S1 S2 Sn-1 ¿P(Sn)? Sn μdt 2μdt 3μdt nμdt

11 2. Rendimiento de la multiprogramación
Tema 3: Procesos 2. Rendimiento de la multiprogramación dt dt dt dt S0 S1 S2 Sn-1 Sn μdt 2μdt 3μdt nμdt 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: Nótese que de aquí ya somos capaces de poner la probabilidad de cualquier estado en función de la probabilidad del estado 0 (último click)

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

13 2. Rendimiento de la multiprogramación
Tema 3: Procesos 2. Rendimiento de la multiprogramación Si ya podemos poner cualquier estado Pi en función de P0,  y μ, y también tenemos el valor de P0 en función de  y μ, ya podemos poner cualquier estado Pi en función solo de  y μ (click). En concreto, el estado que nos interesa, que es Pn (click). El coeficiente de espera (click) nos puede permitir poner esta expresión en función de algo más significativo que  y μ Coeficiente de espera (): proporción de tiempo que los procesos invierten en operaciones bloqueantes

14 2. Rendimiento de la multiprogramación
Tema 3: Procesos 2. Rendimiento de la multiprogramación /μ se puede poner fácilmente en función de : ¿Con B o con V? Sustituyendo la expresión de /μ en la expresión de Pn, ya podemos poner lo que nos interesa, que es Pn, en función sólo de  que es algo fácil de medir. El rendimiento de la multiprogramación (click) es lo complementario a Pn, es decir, la proporción de tiempo que está el procesador ocupado Rendimiento de la multiprogramación: =1-c

15 1-c (% de ocupación de CPU) para distintos valores de  y n
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 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 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 99.9 99.6 98.5 95.2 86.9 68.9 38.6 n=5 99.7 98.6 94.2 80.1 47.5 n=6 97.8 88.3 55.9 n=7 99.3 93.7 63.8 n=8 97.0 71.1 n=9 98.7 77.6 n=10 99.5 83.2 Obsérvese: Fila para 0 procesos: trivial, CPU 0% del tiempo ocupada Fila para 1 proceso: trivial, la ocupación de CPU es complementaria a  Columna para procesos con poco bloqueo (primera columna, sólo 10% del tiempo bloqueado): con dos procesos la ocupación es del 99.4 (no se ha llegado aún a saturación). Con tres procesos, saturación garantizada. Columna para procesos con mucho bloqueo (última columna, 90% del tiempo bloqueados): con 10 procesos, sólo se consigue mantener la CPU ocupada un 83.2% del tiempo. 1-c (% de ocupación de CPU) para distintos valores de  y n

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

17 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 17

18 Tema 3: Procesos 3. Estado de los procesos Durante ejecución procesos alternan periodos de actividad e inactividad: pasan por distintos estados Diagrama mínimo de estados para cualquier sistema: ACTIVO Preparado: es el estado en que se encuentra un proceso al que sólo es necesario asignarle la CPU para que pase a estado activo. Activo: (click) es el estado en el que se encuentra un proceso que tiene asignada la CPU y está por consiguiente ejecutando instrucciones. Bloqueado: (click) es el estado en que se encuentra un proceso al que no se le puede asignar la CPU porque se encuentra a la espera de que se complete alguna operación bloqueante que ha solicitado. Ejemplo de operaciones bloqueantes son las operaciones de entrada/salida, así como las esperas y las operaciones de sincronización entre procesos y en general cualquier operación que pueda realizarse sin intervención continua de la CPU y que tarde un tiempo en completarse muy superior al que tarda la CPU en asignarse a otro proceso (tiempo de conmutación). Hasta aquí, se habla de planificación no apropiativa (click) pues a un proceso que esté activo sólo se le puede retirar la CPU si solicita una operación bloqueante. Si por el contrario existe una transición de activo a preparado (click) a la cual se llama apropiación, se habla entonces de planificación apropiativa pues se considera la posibilidad de retirar la CPU a un proceso por casas ajenas a él. activación bloqueo PREPARADO BLOQUEADO apropiación Planificación no apropiativa Planificación apropiativa fin de bloqueo

19 Planificador de procesos
Tema 3: Procesos 3. Estado de los procesos Estructura mínima de un planificador de procesos apropiación Planificador de procesos procesos preparados El planificador utiliza dos listas, colas, etc., una con los procesos preparados y otra con los bloqueados. El planificador elige el proceso a activar de la lista de procesos preparados (que es por donde además entran los procesos) y les asigna o retira la CPU Cuando un proceso se bloquea, (click) se le retira del procesador y se inserta en la lista de procesos bloqueados, de donde terminarán pasando a la lista de procesos preparados Si un proceso puede pasar de estar activo a la lista de preparados, es que hay apropiación (click) procesos bloqueados bloqueo

20 fin de bloqueo (recursos no disponibles)
Tema 3: Procesos 3. Estado de los procesos TERMINADO Diagrama de estados ampliado terminación ACTIVO EN ESPERA activación bloqueo en espera: (click) estado por el que pasan los procesos antes de pasar a estar preparados por primera vez. Los procesos, cuando comienzan a existir, no están preparados para comenzar a ejecutar instrucciones hasta que el sistema no ha llevado a cabo una serie de actividades, como la carga del código ejecutable, que es una operación bloqueante. Una vez que el proceso está completamente cargado, ya se puede producir la primera transición al estado preparado. Terminado: La transición de activo a este estado ocurre cuando el proceso realiza una llamada al sistema solicitando su propia terminación. En estas circunstancias, hay estructuras de datos correspondientes al proceso que no pueden ser liberadas hasta que el proceso padre del que está terminando recoja el código de terminación del mismo. Hasta que esto ocurra, estas estructuras se mantendrán y el proceso seguirá existiendo en estado terminado. Transición: cuando se completa la operación que mantiene a un proceso en estado bloqueado termina, el proceso puede haber perdido haya perdido parte de los recursos que necesita para proseguir su ejecución. Este es por ejemplo el caso de un sistema con memoria virtual, en el que parte de las páginas de memoria del proceso han sido descargadas a disco. En dicho caso, el proceso tendría que pasar por un estado intermedio transición mientras recupera dichos recursos, y una vez que todos sus recursos vuelven a estar disponibles, volvería al estado preparado PREPARADO BLOQUEADO apropiación fin de bloqueo fin de bloqueo (recursos no disponibles) recursos disponibles TRANSICIÓN

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

22 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 22

23 Tema 3: Procesos 4. El PCB Process Control Block: conjunto de datos relevantes para el SO sobre cada proceso 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 La estructura del PCB suele ser compleja y muy dependiente de SO

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

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

26 4. El PCB Gestión de PCB’s mediante tabla (cont.) Ventajas:
Tema 3: Procesos 4. El PCB Gestión de PCB’s mediante tabla (cont.) Ventajas: Simplicidad Robustez 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

27 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 27

28 5. Conmutación de procesos
Tema 3: Procesos 5. Conmutación de procesos Conmutación: secuencia de pasos a llevar a cabo para retirar la CPU a un proceso y asignársela a otro Causas que producen conmutación: Internas al proceso: llamada al sistema bloqueante Externas al proceso: apropiación Secuencia de conmutación A→B: Pasar a modo supervisor (implícito) Guardar estado CPU en PCB de proceso A Actualizar estado de A e insertarlo en la lista que proceda Tratar suceso que causa conmutación Elegir proceso B (aplicando criterio de planificación) Actualizar estado de B a activo 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 Conceptualmente es trivial, pero su implementación puede ser muy compleja, pues: Es muy dependiente de procesador Debe ser muy eficiente Normalmente, los procesadores proporcionan mecanismos para acelerar por hardware la conmutación El paso a modo supervisor es implícito pues una conmutación viene provocada por: Llamada bloqueante: si proceso ha efectuado llamada al sistema, ya está CPU en modo supervisor Apropiación: causas: proceso de más prioridad que pasa a preparado: eso ocurre por interrupción, luego ya está en modo supervisor. Fin de cuanto de tiempo: eso se implementa mediante interrupción, luego ya está en modo supervisor. Nada impide en principio que el proceso elegido por el planificador sea el propio proceso A

29 Índice: Modelado de procesos Rendimiento de la multiprogramación
Tema 3: Procesos Índice: Modelado de procesos Rendimiento de la multiprogramación Estados de los procesos El PCB Conmutación de procesos Hilos 29

30 Tema 3: Procesos 6. Hilos Supongamos un proceso que realiza dos actividades paralelizables. ¿Sería interesante convertirlo en dos procesos? A Para que lo segundo sea cierto, es imprescindible que al menos una de las actividades se bloquee ocasionalmente ? A B B Si sistema es multiprocesador: siempre es interesante Si sistema no multiprocesador: una actividad puede aprovechar los tiempos de bloqueo de la otra

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

32 6. Hilos A B Solución: implementar actividades A y B mediante hilos
Tema 3: Procesos 6. Hilos Solución: implementar actividades A y B mediante hilos Hilo: secuencia de ejecución dentro de un proceso Comparten todos los recursos del proceso: Espacio de memoria Archivos abiertos Código No se implementan mecanismos de protección entre hilos del mismo proceso puesto que si un hilo destruye trabajo de otro hilo, es problema del programador: no compromete estabilidad del sistema No se implementan mecanismos de comunicación entre hilos del mismo proceso pues no es necesario: comparten todo el espacio de memoria de su proceso al cual pueden acceder directamente. A Primitivas provistas por SO: Creación de hilos Destrucción de hilos Sincronización entre hilos NO se implementan: Mecanismos de protección entre hilos (del mismo proceso) Mecanismos de comunicación entre hilos (del mismo proceso) B

33 6. Hilos Implementación de hilos en el núcleo: fácil
Tema 3: Procesos 6. Hilos Implementación de hilos en el núcleo: fácil Planificación de hilos, en lugar de procesos Por cada hilo: pocos recursos Una pila Un estado de la CPU 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

34 Canal céntrico en Venecia, Italia. Enero de 2008.


Descargar ppt "Sistemas Operativos Tema 3: Procesos."

Presentaciones similares


Anuncios Google