Sistemas operativos en entornos mono y multiusuario
Unidad 3
GESTIÓN DE PROCESOS Andrés Rosique Hernández androsique
[email protected]
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
Licencia Esta obra está bajo una licencia ReconocimientoNo comercialCompartir bajo la misma licencia 3.0 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/byncsa/3.0/deed.es o
envíe una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
U03. Gestión de procesos
2
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
Índice 1.Procesos y flujos 2.Estados de los procesos 3.Control de interrupciones 4.Planificador y despachador 5.Sincronización de procesos 6.Algoritmos de planificación
U03. Gestión de procesos
3
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Procesos y flujos ●
●
●
A los procesos, dependiendo del sistema operativo, se les llama también flujos de control. Cuando se ejecuta más de un proceso a la vez (concurrentemente), todos necesitan que el sistema les asigne una serie de recursos (CPU, memoria...). El sistema operativo se encarga de sincroniza y asignar estos recursos en un orden adecuado y atendiendo a unas prioridades. –
Ejemplo: un padre prepara un pastel a su hija, y tiene: ● ●
un libro de recetas y los ingredientes: harina, azúcar, huevos, levadura, ralladura de limón, aceite y leche.
U03. Gestión de procesos
4
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Procesos y flujos (2) El programa es el libro de recetas, el procesador es el padre, los datos son los ingredientes, y el proceso consiste en leer la receta, buscar y obtener los ingredientes y hornear el pastel. – Mientras está haciendo el pastel, su hija se cae y llora porque se ha caído y se ha hecho daño en la rodilla. – Entonces el padre anota en el libro donde se quedó (salva el estado del proceso), y se va curar a su hija (otro proceso de mayor prioridad). Aquí el programa sería el libro de primeros auxilios. – Cuando termina de curarla, sigue con el pastel por el U03. Gestión de procesos 5 punto donde se quedó. –
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Procesos y flujos (3) ●
Gráficamente sería así:
U03. Gestión de procesos
6
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Procesos y flujos (5) ●
●
●
Cuando un programa se convierte en un proceso (se ejecuta), además de ubicar en memoria las instrucción y los datos asociados, se le asocia una estructura de datos. Esta estructura de datos es única para cada proceso; lo identifica y permite controlarlo. La estructura se denomina bloque de control de proceso (PCB, Process Control Block) y para cada proceso contiene toda la información necesaria para poder gestionar el proceso.
U03. Gestión de procesos
7
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Procesos y flujos (6) ●
Bloque de control de proceso (PCB): –
Estado actual del proceso: un proceso puede estar en ● ● ●
–
– – –
Ejecución. Listo, preparado, en espera o activo. Bloqueado.
Identificador del proceso: se conoce como PID y es único para cada proceso. Es como el DNI de un proceso. Prioridad del proceso. Ubicación en memoria. Recursos utilizados.
U03. Gestión de procesos
8
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
1. Introducción (6) Ejercicios. 1. ¿Qué es un proceso? 2. ¿Cómo se llama la estructura de datos que tiene cada proceso? 3. ¿Qué información contiene el bloque de control de proceso? 4. ¿Qué es el PID? 5. ¿En qué estados puede estar un proceso?
U03. Gestión de procesos
9
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos ●
●
●
La principal responsabilidad del sistema operativo es controlar la ejecución de los procesos. Sin embargo, primero hay que definir un modelo de comportamiento para los procesos. El modelo más sencillo es de que tiene 2 estados: – –
Ejecución. No ejecución.
U03. Gestión de procesos
10
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (2) Modelo de 2 estados ●
Funcionamiento del modelo de 2 estados: – – –
–
Cuando se crea un nuevo proceso, entra en el sistema en estado de “No ejecución”. Desde entonces el sistema operativo sabe de su existencia y que está esperando para ser ejecutado. En algún momento, el proceso que se estuviera ejecutando es interrumpido y el planificador selecciona un nuevo proceso para que se ejecute. Por lo tanto, ● ●
el proceso que se estaba ejecutando pasa a “No ejecución” y uno de los de “No ejecución” para a “Ejecución”.
U03. Gestión de procesos
11
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (3) Modelo de 2 estados –
El planificador se podría describir como organizador de una cola.
–
Si todos los procesos estuvieran siempre listos para ejecutarse, este modelo sería eficaz. ●
●
Cola organizada en primero en entrar, primero en salir (FIFO). Algoritmo de planificación de turno rotatorio (round robin).
U03. Gestión de procesos
12
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (4) Modelo de 3 estados ●
●
●
El modelo anterior no es bueno porque algunos de los procesos del estado “No ejecución” no están preparados, están bloqueados esperando que termine una operación de E/S. La forma más simple de solucionar esto es dividir el estado de “No ejecución” en dos estados: listo y bloqueado. Así tendríamos un modelo de 3 estados: – – –
Ejecución. Listo. Bloqueado.
U03. Gestión de procesos
E/S = Entrada/Salida. 13
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (5) Modelo de 3 estados ●
● ●
Ejecución: proceso actualmente en ejecución. Si tenemos sólo un procesador, sólo puede haber uno. Listo: proceso preparado para ejecutarse. Bloqueado: proceso que no se puede ejecutar hasta que ocurra un suceso. Por ejemplo: E/S.
U03. Gestión de procesos
14
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (6) Modelo de 3 estados ●
Las transiciones son:
Listo → Ejecución: para escoger un nuevo proceso para ejecutar, el S.O. lo selecciona del estado Listo. – Ejecución → Listo: ocurre cuando el proceso en ejecución consume el tiempo máximo permitido de ejecución sin interrumpir (round robin) o porque tiene que ejecutarse un proceso de mayor prioridad. – Ejecución → Bloqueado: cuando el proceso que se está ejecutando solicita algo por lo que debe esperar. Por ejemplo, un archivo o una operación de E/S. – Bloqueado → Listo: cuando ocurre el suceso que estaba esperando, pasa al estado de Listo. U03. Gestión de procesos 15 –
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (7) Modelo de 5 estados ●
●
Sin embargo, es conveniente añadir 2 estados más al modelo anterior para facilitar la gestión de los procesos. Estos estados serían: –
–
Nuevo: proceso recién creado pero no ha sido admitido por el S.O. No está cargado en memoria principal. Terminado: proceso que ha sido expulsado del S.O. porque ha acabado o por alguna otra razón.
U03. Gestión de procesos
16
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (8) Modelo de 5 estados
U03. Gestión de procesos
17
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (9) Modelo de 6 estados ●
●
●
Se debe añadir el estado “Suspendido” para hablar de intercambio a disco. Cuando no caben más procesos en el estado de bloqueado, hay que pasarlos a disco. El intercambio es una operación de E/S y podría empeorar el sistema en vez de mejorarlo.
U03. Gestión de procesos
18
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (10) Modelo de 7 estados ●
Listo y suspendido: el proceso está en memoria secundaria pero está disponible para su ejecución en cuanto se cargue en memoria principal
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (11) ●
Conceptos: –
Cambio de contexto: ●
●
–
Consiste en la ejecución de una rutina perteneciente al núcleo del S.O., cuyo propósito es parar la ejecución de un proceso para dar paso a la ejecución de otro distinto. Cuando un proceso pasa de un estado a otro (Listo → Ejecución), se produce un cambio de contexto.
Prioridades: ●
●
Indican la importancia del proceso y, por lo tanto, la mayor o menor cantidad de tiempo que el procesador empleará en él sin interrupciones. Cada proceso tiene asignada una prioridad por el sistema operativo o por administrador del sistema.
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
2. Estados de los procesos (12) Ejercicios. 1. Completa el siguiente modelo y explica las transiciones.
2. ¿Cuándo se produce un cambio de contexto? 3. ¿Qué son las prioridades?
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
3. Control de interrupciones ●
●
●
Para comprender el control de interrupciones partiremos de un ejemplo. Supongamos que estamos en un equipo con el sistema operativo cargado y en funcionamiento, y queremos ejecutar otro programa (el Z). Hacemos doble clic sobre el icono del programa Z y... ¿qué es lo que ocurre? – –
Se lanza el cargador. El cargador es un proceso del propio sistema operativo.
U03. Gestión de procesos
22
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
3. Control de interrupciones (2) ●
●
El cargador prepara el programa Z para ser ejecutado. La función del cargador es: – – – – –
Crea el PCB. Se le asigna un identificador (PID), una prioridad base y todos los recursos menos la CPU. Se inserta en la tabla de procesos del sistema. Se carga en memoria virtual. Se cambia el campo de estado del PCB a preparado. Se incluye en la cola de procesos listos para hacer uso de la CPU.
U03. Gestión de procesos
El proceso que controla la cola de procesos se llama planificador.
23
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
4. Planificador ●
●
●
El planificador es un componente del sistema operativo. El planificador se encarga de asignar los recursos del sistema de manera que se consigan los objetivos de comportamiento esperados. Los sistemas operativos disponen generalmente de tres planificadores: – – –
Planificador a largo plazo. Planificador a medio plazo. Planificador a corto plazo.
U03. Gestión de procesos
24
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
4. Planificador (2) ●
El planificador se encarga de decidir qué proceso pasara a estado ejecución de entre todos los procesos que estén en estado preparado. PROCESO A PROCESO B
Ahora le toca al proceso B
PROCESO C
U03. Gestión de procesos
25
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
4. Planificador (3) ●
●
La elección de un proceso u otro la hace el planificador siguiendo las directrices de un algoritmo. El algoritmo se elige atendiendo a aspectos tales como: – – – –
La eficacia en el uso del procesador. El rendimiento o numero de procesos completados por unidad de medida temporal. El tiempo de espera de un proceso. El tiempo de respuesta a un evento.
U03. Gestión de procesos
26
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
4. Planificador y despachador (4) Ejercicios. 1. ¿Qué es el planificador? 2. ¿Cuál es su misión? 3. ¿Cuántos tipos de planificadores tiene un sistema operativo?
U03. Gestión de procesos
27
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
5. Sincronización de procesos ●
●
●
Sincronización: mecanismo para impedir que existan conflictos entre dos o más procesos cuando se están ejecutando de forma concurrente y acceden a los mismos recursos. Mediante la sincronización dos o más procesos concurrentes no podrán utilizar los mismos recursos en el mismo instante de tiempo. Por esta razón habrá procesos en ejecución y procesos bloqueados.
U03. Gestión de procesos
28
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación ●
●
Planificación de procesos: conjunto de mecanismos del sistema operativo que establecen el orden en el que se van a ejecutar los procesos, y permiten cargarlo y descargarlo de la memoria. La planificación de procesos podrá ser distinta para cada uno de los planificadores: – – –
●
Planificador a largo plazo. Planificador a medio plazo. Planificador a corto plazo.
El objetivo de la planificación es optimizar el comportamiento del sistema.
U03. Gestión de procesos
29
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (2) ●
Algunos de los objetivos que se suelen perseguir: – – – – – –
●
Reparto equitativo del procesador. Eficiencia (optimizar el uso del procesador). Menor tiempo de respuesta en uso interactivo. Menor tiempo de espera en lotes (batch). Mayor número de trabajos por unidad de tiempo (batch). Cumplir los plazos de ejecución de un sistema de tiempo real.
Sin embargo, mayoría de estos objetivos son incompatibles entre sí.
U03. Gestión de procesos
30
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (2) ●
La planificación puede ser con expulsión o sin ella. –
Sin expulsión (no apropiativa): un proceso conserva el procesador mientras no solicite del sistema operativo un servicio que lo bloquee. ●
●
–
Ventaja: minimiza el tiempo que necesita el S.O. para planificar y activar procesos. Inconveniente: un proceso puede monopolizar el procesador (por ejemplo, un bucle infinito).
Con expulsión (apropiativa): el sistema operativo puede expulsar a un proceso del estado de ejecución aunque éste no lo solicite. ● ●
Ventaja: permite controlar el tiempo que está en ejecución un proceso. Inconveniente: requiere que el S.O. entre de forma sistemática a ejecutar para así poder comprobar si el proceso ha superado su límite de tiempo de ejecución.
U03. Gestión de procesos
31
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (2) FIFO o FCFS ●
●
●
●
FIFO (FirstIn, FirstOut) o FCFS (FirstCome, First Served) es el algoritmo de planificación más simple. Cuando un proceso está listo para ejecutarse, pasa a la cola de listos. Y cuando el proceso que estaba ejecutándose termina, se selecciona el proceso más antiguo de la cola (el que llegó primero). Es decir, el primero que llega es el primero que será atendido. El resto esperarán por orden de llegada en una cola.
U03. Gestión de procesos
32
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (2) FIFO o FCFS ●
Ejemplo:
T. Espera T. Retorno
– –
T.Espera = (0+1+5+7+10)/5 = 4,6 T.Retorno = (3+7+9+12+12)/5 = 8,6
U03. Gestión de procesos
T. retorno = T. espera + T. servicio
A
0
3
B
1
7
C
5
9
D
7
12
E
10
12
33
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (3) Cíclica o round robin ●
●
●
●
Diseñado para hacer un reparto equitativo del tiempo del procesador → está especialmente destinado a los sistemas de tiempo compartido. El algoritmo se basa en el concepto de cuanto de tiempo (quantum) o rodaja de tiempo (slot). Los procesos están organizados en forma de cola circular, eligiéndose para su ejecución el proceso cabecera de la cola. Un proceso permanecerá en ejecución hasta que ocurra una de las dos condiciones siguientes:
El proceso pasa a estado de bloqueado. – El proceso consume su quantum. U03. Gestión de procesos –
34
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (4) Cíclica o round robin ●
Ejemplo:
T. Espera T. Retorno
– –
T.Espera = (1+10+9+9+5)/5 = 6,8 T.Retorno = (4+16+13+14+7)/5 = 10,8
U03. Gestión de procesos
A
1
4
B
10
16
C
9
13
D
9
14
E
5
7
35
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (5) SPN o SJF ●
●
●
●
Se selecciona el proceso al que se le supone un menor tiempo de ejecución. Los procesos cortos se ejecutan antes que los largos aunque llegaran después a la cola. El mayor problema de diseño que plantea es conocer (estimar) el tiempo que va a necesitar cada proceso. A nivel de funcionamiento, se penaliza a los procesos largos que pueden tardar mucho en ejecutarse.
U03. Gestión de procesos
36
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (5) SPN o SJF ●
Ejemplo:
T. Espera T. Retorno
– –
T.Espera = (0+1+7+9+1)/5 = 3,6 T.Retorno = (3+7+11+14+3)/5 = 7,6
U03. Gestión de procesos
A
0
3
B
1
7
C
7
11
D
9
14
E
1
3
37
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (6) SRT ●
●
●
●
Consiste en seleccionar en cada momento el proceso al que le queda menos tiempo de ejecución. Es una versión con expulsión (apropiativa) del algoritmo SPN. Por lo tanto, cuando se añade un proceso a la cola de Listos, si le queda un tiempo de ejecución menor que el que se está ejecutando, lo saca del sistema para ejecutarse él. El problema de nuevo es la estimación del tiempo de ejecución de cada proceso.
U03. Gestión de procesos
38
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (6) SRT ●
Ejemplo:
T. Espera T. Retorno
– –
T.Espera = (0+7+0+9+0)/5 = 3,2 T.Retorno = (3+13+4+14+2)/5 = 7,2
U03. Gestión de procesos
A
0
3
B
7
13
C
0
4
D
9
14
E
0
2
39
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (6) ●
La valoración de los algoritmos de planificación se suele realizar con los siguientes parámetros: –
–
El tiempo medio de espera: tiempo que espera un proceso desde que entra al sistema hasta que se le sirve (tiempo que espera en la cola de listos). El tiempo medio de retorno o servicio: tiempo que transcurre desde que un proceso empieza a ser servido hasta que termina su ejecución (es la suma de los períodos de tiempo utilizados en la espera para entrar en la memoria, la espera en la cola de procesos listos, la ejecución en la CPU y la realización de las E/S).
U03. Gestión de procesos
40
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
6. Algoritmos de planificación (7) Ejercicios. 1. ¿Cuáles son los algoritmos de planificación? 2. ¿En qué consiste cada uno? 3. ¿Cuál es el que peor comportamiento tiene para los procesos largos? ¿Y para los cortos? 4. ¿Cuál es el que mejor comportamiento tiene para los procesos cortos? ¿Y para los largos?
U03. Gestión de procesos
41
Andrés Rosique Hernández androsique
[email protected]
Sistemas operativos en entornos mono y multiusuario
Bibliografía ●
Libros: –
–
●
Muñoz López, F.J., Benítez Palacios, J.I., Lozano Gutiérrez, A. Sistemas operativos en entornos monousuario y multiusuario. McGrawHill, 2005. Stallings, W. Sistemas operativos. Principios de diseño e interioridades. Cuarta edición. Pearson Education, 2001.
Enlaces: –
http://es.wikipedia.org.
U03. Gestión de procesos
42