Sistemas Operativos
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA
INGENIERÍA EN INFORMÁTICA
Sistemas de Operación
Planificación de Procesos. Parte 1
Presentación
Sistemas Operativos
Introducción
• Planificador: módulo del SOP que controla la utilización de un recurso.
• La ejecución de un proceso consta de ciclos sucesivos ráfagas de CPU-E/S
Sistemas Operativos
Introducción
• Objetivos del Planificador:§ Dar una participación adecuada del reparto de
tiempo de CPU§ Equilibrar el uso de recursos (load balancing).§ Aplicar las políticas generales del SOP
(prioridades, seguridad, etc.).§ El resto depende del tipo de SOP (por lotes,
tiempo real, distribuido, etc.).
Sistemas Operativos
Introducción
• Problemas:§ Alcanzar todos los objetivos puede provocar
contradicciones.§ El comportamiento de los procesos es
impredecible ⇒ hay que estar preparado para manejar todos los casos posibles.
Sistemas Operativos
Introducción
• Cola de planificación: § Conjunto de procesos esperando por la
utilización de un determinado recurso.§ Cada elemento es una estructura de control
que representa la petición a servir.§ Se administra según con la política de planifi-
cación usada por el planificador del recurso.
Sistemas Operativos
Introducción
• Colas de procesos: § El SOP organiza los BCPs en colas de espera
por el procesador o por los dispositivos de E/S.
Sistemas Operativos
Introducción
• Colas de estados: § El SOP mantiene una cola de BCPs por
estado, cada una de las cuales contentiva de los procesos que están en ese estado.§ Al crear un proceso, su BCP se encola en la
cola acorde a su estado actual.§ Conforme un proceso cambia de estado, su
BCP es retirado de la cola de su estado actual y encolado en la cola de su nuevo estado.§ El SOP se puede modelar como un conjunto
de procesadores y de colas.
Sistemas Operativos
Introducción
Sistemas Operativos
Introducción
a) Cola de trabajos: conjunto de todos los procesos del sistema.
b) Cola de preparados: conjunto de todos los procesos que residen en memoria principal, preparados y esperando para ejecutarse.
c) Cola(s) de espera: conjunto de todos los procesos esperando por un dispositivo de E/S particular o por un suceso (búfer de memoria, un semáforo, etc.).
d) PCP (Planificador de Corto Plazo):o También llamado planificador de trabajos.o Asigna / desasigna la CPU a la cola de procesos
preparados.o Debe ser muy rápido (frecuencias cortas).
Sistemas Operativos
Introducción
e) PLP (Planificador de Largo Plazo):o Para sistemas por lotes.o Suministra procesos normalmente almacenados en disco
y los envía a la cola de preparados.o Se ejecuta a frecuencias largas.o Controlan el grado de multiprogramación (número de
procesos en memoria).o UNIX no lo usa (los procesos pasan directamente a la cola
de preparados una vez creados).o Deben seleccionar una mezcla de procesos limitados por
E/S y limitados por CPU.
f) PMP (Planificador de Medio Plazo):o Usado por algunos SOPs como los de t-compartido.o Envía al disco procesos de poco interés (swapping).
Sistemas Operativos
Introducción
Sistemas Operativos
Introducción
a) Cuando un proceso desea entrar en el sistema se coloca en una cola de trabajos a esperar que se le asigne memoria.
b) Cuando a un trabajo se le asigna memoria, entra en la cola de procesos listos.
c) Cuando un proceso realiza una operación de E/S pasa a una cola de dispositivo asociada al dispositivo en el que realiza la operación de E/S.
Sistemas Operativos
Mecanismos y Políticas
• Un mecanismo es el código (a menudo de bajo nivel) que manipula un recurso:§ CPU: cambio entre procesos, etc.§ Memoria: asignar, liberar, etc.§ Disco: leer, escribir, etc.
• Una política decide cómo, quién, cuándo y por qué:§ ¿Cuánta CPU obtiene un proceso?§ ¿Cuánta memoria se le da?§ ¿Cuándo escribir en disco?
Sistemas Operativos
Mecanismos y Políticas
• En el diseño de un SOP es conveniente tratar de mantener separado los mecanismos de las políticas:§ Facilita la reutilización de mecanismos.§ Permite la adaptación de políticas.
• Un tema común de investigación es la separación de políticas y mecanismos:§ En algunos casos el mecanismo de uno es la
política de otro.§ Reduce considerablemente el nivel de
abstracción ⇒ Orientación a objetos.
Sistemas Operativos
Mecanismos y Políticas
• Políticas de planificación - planificar cuando se conmuta entre estados: § De ejecutándose a bloqueado.§ De ejecutándose a preparado.§ De bloqueado a preparado.§ De ejecutándose a finalizado.
⇒ Siempre que un proceso abandona la CPU, o se inserta un proceso en la cola de preparados.
Sistemas Operativos
Mecanismos y Políticas
• Dos tipos de políticas (dos maneras de hacer la multiprogramación):1) No apropiativa: § Una vez que un proceso está activo continúa
ejecutándose hasta que: a) Termina.b) Se bloquea por el inicio de una operación de E/S o un
servicio solicitado por el SOP.c) El propio proceso hace una llamada al SOP para ceder el
procesador a otro proceso.
§ Un proceso con mucho tiempo de procesador y pocas E/S puede monopolizar el uso de CPU.
§ Usada por MS-DOS y MacOS.
Sistemas Operativos
Mecanismos y Políticas
2) Apropiativa / preferente / expulsiva: § El SOP puede interrumpir en cualquier momento el
proceso activo con el objeto de dar paso a otro proceso que esté preparado.
§ Hace uso de un algoritmo determinado de planificación: turno aleatorio (round robin), por prioridad, FCFS (First Come First Served), SPN (Shortest Process Next), SRT (Shortest RemainingTime).
§ Usada por MS-Windows, UNIX y Linux.
Sistemas Operativos
Mecanismos y Políticas
• Apropiación vs No apropiación:§ La apropiación asegura que un trabajo no
bloquea a otro igualmente importante.§ ¿Tamaño de la fracción de tiempo? → afecta
tiempo de respuesta y productividad.§ No apropiar requiere que los trabajos invoquen
explícitamente al planificador → Un trabajo erróneo puede “congelar” el sistema.
Sistemas Operativos
Despachador
• Despachador (dispatcher): da el control de la CPU al proceso seleccionado por el planificador (scheduler).
• Realiza lo siguiente:§ Cambio de contexto (en modo núcleo).§ Conmutación a modo usuario.§ Salto a la instrucción del programa para su
reanudación.
• Latencia de despacho: tiempo que emplea el despachador en detener un proceso y comenzar a ejecutar otro.
Sistemas Operativos
Despachador
• Ejemplo:
Sistemas Operativos
Despachador
• El despachador obtiene el control de forma:§ Síncrona – un proceso cede la CPU.§ Asíncrona – iniciado por una interrupción u
ocurrencia de un evento que afecta a un proceso (ej: fin de E/S, liberación de recurso, etc.).
• El gestor de interrupciones:1. Salva el contexto del proceso en ejecución.2. Determina el tipo de interrupción y ejecuta la
rutina de servicio correspondiente.3. Selecciona el proceso a ejecutar → Restaura
su contexto.
Sistemas Operativos
Criterios de Planificación
• Utilización: mantener la CPU tan ocupada como sea posible.
• Productividad: número de procesos que completan su ejecución por unidad de tiempo.
• Tiempo de retorno: cantidad de tiempo necesario para ejecutar un proceso dado.
Sistemas Operativos
Criterios de Planificación
• Tiempo de espera: tiempo que un proceso ha estado esperando en la cola de preparados.
• Tiempo de respuesta: tiempo que va desde que se remite una solicitud hasta que se produce la primera respuesta.
Sistemas Operativos
Criterios de Planificación
• Métricas:§ Máxima utilización.§ Máxima producción.§ Mínimo tiempo de retorno.§ Mínimo tiempo de espera.§ Mínimo tiempo de respuesta.
• Los algoritmos de planificación se diseñan en base a considerar una o más de estas métricas.
• En la mayoría de los casos la mejora de una métrica puede perjudicar a otra.
Sistemas Operativos
FCFS
• Primero en llegar, primero en ser servido.• Se respeta el orden de llegada de los
procesos → cola (FIFO – Primero en llegar, Primero en Salir).
• Buscar mejorar el tiempo de respuesta. • Afecta los tiempos medios de espera (si los
primeros procesos son largos, los demás deben esperar).
Sistemas Operativos
FCFS
• Es simple de implementar (basta manejar una cola).
• Es muy sensible al orden de llegada de los procesos.
• Perjudica a los procesos intensivos en operaciones de E/S (efecto convoy).
• Ejemplo: § Suponer los procesos P1, P2 y P3 con tiempos
de ráfaga de 24, 3 y 3 respectivamente.
Sistemas Operativos
FCFS
§ Si los procesos llegan en ese mismo orden {P1, P2, P3}, el tiempo medio de espera (te medio) es (0 + 24 + 27) / 3 = 17.
§ Si se cambia el orden de los procesos {P2, P3, P1}, el te medio mejora (0 + 3 + 6) / 3 = 3.
Sistemas Operativos
FCFS
• Ejemplo:
Sistemas Operativos
SPN
• Primero el más corto.• Se planifica al proceso cuya siguiente
ráfaga es la más corta (menos tiempo de CPU).
• La idea es que los procesos cortos no se vean afectados por los largos (aumento en la productividad).
• La presencia de muchos procesos cortos pueden perjudicar a los grandes ⇒ riesgo de inanición de los procesos de larga duración.
Sistemas Operativos
SPN
• Dos versiones: § No apropiativa: el proceso en ejecución no se
apropia hasta que complete su ráfaga.§ Apropiativa: también conocido como SRTF
(primero el de tiempo restante menor); un proceso con ráfaga más corta que el tiempo restante del proceso en ejecución, apropia al proceso actual.
• Minimiza el te medio para un conjunto dado de procesos (no así el tiempo de respuesta).
Sistemas Operativos
SPN
• Funcionamiento (versión no apropiativa):1) Asocia a cada proceso un tiempo aproximado
de CPU.2) Asigna la CPU al proceso con menor tiempo.3) Cuando un proceso consigue la CPU la
conserva hasta que decide liberarla.
• La estimación del tiempo de uso de CPU por parte de un proceso puede ser un inconveniente (a veces se modela con técnicas estadísticas).
Sistemas Operativos
SPN
• Funcionamiento SRTF:1) Los procesos llegan a la cola y solicitan un
intervalo de CPU.2) Si dicho intervalo es inferior al que le falta al
proceso en ejecución para abandonar la CPU, el nuevo proceso pasa a la CPU y el que se ejecutaba a la cola de preparados.
• El intervalo de CPU es difícil de predecir.• Mientras haya trabajos cortos, los procesos
largos pueden no ejecutarse → inanición →efecto convoy.
Sistemas Operativos
SPN
• Si todos los procesos tienen la misma duración de ráfaga, se comporta igual que FCFS.
• En la actualidad existen variantes para la planificación de procesos en tiempo-real.
• Ejemplo:§ Suponer los procesos P1, P2, P3 y P4 con
tiempos de ráfaga de 7, 4, 1 y 4 respectivamente.
Sistemas Operativos
SPN
• Ejemplo:
Sistemas Operativos
Round-Robin
• También conocido como turno rotatorio.• A cada proceso se le asigna una fracción de
tiempo (quantum) de CPU (entre 10 y 100 ms). Pasado este tiempo, si no ha finalizado ni se ha bloqueado, el SOP apropia al proceso y lo pone al final de la cola de preparados.
• El objetivo principal es realizar una asignación imparcial de la CPU entre los trabajos.
Sistemas Operativos
Round-Robin
• Es uno de los más utilizados, sencillos y equitativo.
• Adecuado para implementar tiempo compartido.
• La cola de procesos preparados se gestiona como FIFO.
• Si el quantum de tiempo es q y hay Nprocesos en cola, el tiempo de respuesta es, en el peor de los casos, q(N-1).
Sistemas Operativos
Round-Robin
• El tiempo de espera medio es:§ Bajo si la duración de los trabajos varía.§ Malo si la duración de los trabajos es idéntica.
• Por lo general tiene un mayor tiempo de retorno que SRTF pero mejor tiempo de respuesta.
• El rendimiento depende del tamaño del quantum (q):
Sistemas Operativos
Round-Robin
§ Grande ⇒ igual que en FCFS (los procesos terminan sus ráfagas de CPU antes de que termine el quantum).§ Pequeño ⇒ mucha sobrecarga si q no es lo
suficientemente grande respecto a la duración del cambio de contexto ⇒ baja el rendimiento.§ Un q ≥ 0 adecuado tiende a un sistema en el
que cada proceso dispone de un procesador a 1/N de la velocidad del procesador real (procesador compartido).
Sistemas Operativos
Round-Robin
• Ejemplo: Sean los procesos P1, P2, P3 y P4 con tiempos de ráfaga 53, 17, 68 y 24 respectivamente; sea q = 20.
Sistemas Operativos
Round-Robin
• Ejemplo:
Sistemas Operativos
Por prioridades
• Cada proceso tiene una prioridad; entra en CPU aquél con mayor prioridad.
• La política puede ser expulsiva o no.• Las prioridades se pueden definir de forma
interna (por el SOP) o externa (por los usuarios).
• Las prioridades pueden ser:a) Estáticas: se asigna antes de la ejecución y no
cambia.b) Dinámicas: cambia con el tiempo.
Sistemas Operativos
Por prioridades
• Si la prioridad es estática, existe riesgo de inanición de los procesos de con menos prioridad.
• Una posible solución es manejar envejecimiento ⇒ aumentar progresivamente la prioridad a los procesos en espera (baja prioridad) → prioridades dinámicas.
Sistemas Operativos
Con clases de prioridades
• Los procesos se clasifican en distintos grupos: sistema, interactivos, tiempo real, etc.
• La cola de procesos preparados consiste en varias colas donde cada una de ellas tiene su propio algoritmo; además existe un algoritmo entre colas (por ejemplo, RR con q alto).
Sistemas Operativos
Con clases de prioridades
Sistemas Operativos
Multiprocesadores
• Dos opciones:§ Una cola por procesador → la carga puede
quedar mal repartida.§ Una cola común → el reparto es equilibrado,
pero hay riesgos de inconsistencia si varios procesadores manipulan simultáneamente la cola ⇒ sincronización.