SO-mod 5 - Planificacion de Procesos- 2010

Anuncio
Planificación de Procesos
Módulo 5
Departamento de Informática
Facultad de Ingeniería
Universidad Nacional de la Patagonia “San Juan Bosco”
Planificación de Procesos
Conceptos Básicos
Criterios de Planificación
Algoritmos de Planificación
Planificación de Múltiples Procesadores
Planificación en Tiempo Real
Planificación de hilos
Evaluación Algoritmos
JRA © 2010
Sistemas Operativos –Planificación de Procesos
1
Conceptos Básicos
Máxima utilización de CPU obtenida con
multiprogramación
Ciclo CPU–ráfagas (bursts) de E/S – La ejecución de
procesos consiste de ciclos de ejecución de CPU y
esperas en E/S.
Distribución de ráfagas de CPU
JRA © 2010
Sistemas Operativos –Planificación de Procesos
Secuencia Alternada de Ráfagas de CPU y E/S
JRA © 2010
Sistemas Operativos –Planificación de Procesos
2
Planificador de CPU
Selecciona entre los procesos en memoria que están
listos para ejecutar, y aloca la CPU a uno de ellos.
La decisión de planificar la CPU puede tener lugar
cuando un proceso:
1. Conmuta de ejecutando a estado de espera.
2. Conmuta de ejecutando a estado de listo.
3. Conmuta de espera a listo.
4. Termina.
La planificación de 1 y 4 es no apropiativa.
Las otras planificaciones son apropiativas.
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Despachador
El módulo despachador pasa el control de la CPU al
proceso seleccionado por el planificador de corto
término; esto implica:
cambio de contexto
conmutación a modo usuario
salta a la dirección apropiada en el programa de
usuario para reiniciarlo
Latencia de despacho – tiempo que toma al
despachador para detener un proceso e iniciar otro.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
3
Criterios de Planificación
Utilización de CPU – mantener la CPU tan ocupada
como sea posible
Procesamiento total (Throughput) – número de
procesos que completan sus ejecución por unidad de
tiempo.
Tiempo de retorno – cantidad de tiempo para ejecutar
un determinado proceso.
Tiempo de Espera – cantidad de tiempo que un
proceso ha estado esperando en las colas.
Tiempo de respuesta – cantidad de tiempo que
transcurre desde que fue hecho un requerimiento
hasta que se produce la primer respuesta, no salida.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
Criterios de Optimización
Maximizar la utilización de CPU
Maximizar el procesamiento total
Minimizar el tiempo de retorno
Minimizar el tiempo de espera
Minimizar el tiempo de respuesta
JRA © 2010
Sistemas Operativos –Planificación de Procesos
4
Planificación Primero-Entrar, Primero-Servido (FCFS)
Ejemplo:
Proceso
Tiempo de Ráfaga
P1
24
P2
3
P3
3
Suponer que los procesos llegan en el orden: P1 , P2 , P3
La carta de Gantt para la planificación es:
P1
0
P2
24
P3
27
30
Tiempo de espera para P1 = 0; P2 = 24; P3 = 27
Tiempo medio de espera: (0 + 24 + 27)/3 = 17
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Planificación FCFS (Cont.)
Suponer que los procesos llegan en el orden
P2 , P3 , P1 .
La carta de Gantt para la planificación es:
P2
0
P3
3
P1
6
30
Tiempo de espera para P1 = 6; P2 = 0; P3 = 3
Tiempo medio de espera: (6 + 0 + 3)/3 = 3
Mucho mejor que el caso anterior.
Efecto Convoy los procesos cortos delante de los procesos
largos
JRA © 2010
Sistemas Operativos –Planificación de Procesos
5
Planificación Job-Mas Corto Primero (SJF)
Se asocia con cada proceso la longitud de su próxima
ráfaga de CPU. Se usa estas longitudes para planificar los
procesos con el tiempo mas corto.
Dos esquemas:
No apropiativo – una vez que la CPU es dada a un
proceso, no puede ser apropiada hasta que el mismo
complete su ráfaga de CPU.
Apropiativo – si un nuevo proceso llega con una
longitud de ráfaga de CPU menor que el resto del
tiempo de ejecución que le queda al proceso que está
ejecutando entonces se apropia de la CPU. Este
esquema es conocido como El Tiempo Remanente Mas
Corto Primero (SRTF).
SJF es óptimo – da el mínimo tiempo de espera promedio
para un dado conjunto de procesos.
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Ejemplo de SJF No Apropiativo
Proceso Tiempo de llegada
Ráfaga
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
SJF (no apropiativo)
P1
0
P3
7
P2
8
P4
12
16
Tiempo medio de espera = (0 + 6 + 3 + 7)/4 = 4
JRA © 2010
Sistemas Operativos –Planificación de Procesos
6
Ejemplo SJF Apropiativo
Proceso Tiempo de llegada
Ráfaga
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
SJF (apropiativo)
P1
0
P2
2
P3
4
P2
5
P4
7
P1
11
16
Tiempo medio de espera = (9 + 1 + 0 +2)/4 = 3
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Planificación por Prioridad
Con cada proceso se asocia un número (entero)
La CPU es alocada al proceso con prioridad mas alta
(entero mas pequeño ⇒ mas alta prioridad o el entero
mas grande, depende de la convención).
Apropiativo
No apropiativo
SJF es un algoritmo planificador con prioridad.
Problema ⇒Inanición – los procesos de baja
prioridad pueden no llegar a ejecutarse nunca.
Solución ≡ Envejecimiento – se incrementa en el
tiempo la prioridad de los procesos en espera.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
7
Round Robin (RR)
Cada proceso toma una pequeña unidad de tiempo de
CPU (quantum), usualmente 10-100 milisegundos. Luego
de este tiempo el proceso es quitado de la CPU y agregado
a la cola de listos.
Si hay n procesos en la cola de listos y el tiempo del
quantum es q, entonces cada proceso toma 1/n del tiempo
de CPU en rebanadas de a lo sumo q unidades de tiempo
a la vez. Los procesos no esperan mas que (n-1)q
unidades de tiempo.
Rendimiento
q largo ⇒ Primero-Entrar, Primero-Salir
q chico ⇒ q debe ser grande con respecto al cambio de
contexto, sino la sobrecarga es demasiado grande.
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Ejemplo: RR con Quantum = 20
Proceso
Ráfaga
P1
53
P2
17
P3
68
P4
24
La carta de Gantt:
P1
0
P2
20
37
P3
P4
57
P1
77
P3
97 117
P4
P1
P3
P3
121 134 154 162
Tipicamente, mas tiempo de retorno promedio que SJF,
pero mejor respuesta.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
8
Como un Quantum PEQUEÑO Incrementa los Cambios de
Contexto
tiempo de proceso = 10
JRA © 2010
quantum
conmutación
contexto
Sistemas Operativos –Planificación de Procesos
Colas Multinivel
La cola de listos esta particionada en colas separadas:
foreground (interactive)
background (batch)
Cada cola tiene su propio algoritmo de planificación,
foreground – RR
background – FCFS
La planificación debe ser hecha entre las colas.
Planificación con prioridad fija; p.e., servir desde el
foreground y luego del background. Posibilidad de
inanición.
Tajada de tiempo – cada cola tiene una cierta cantidad de
tiempo de CPU que puede planificar entre sus procesos;
p.e., 80% en foreground en RR, 20% en background en
FCFS
JRA © 2010
Sistemas Operativos –Planificación de Procesos
9
Planificación con Colas Multinivel
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Colas Multinivel Realimentadas
Un proceso puede moverse entre varias colas.
El planificador de colas multinivel realimentadas está
definido por los siguientes parámetros:
JRA © 2010
Número de colas
Algoritmos de planificación para cada cola
Método usado para determinar cuando mejorar un
proceso
Método usado para determinar cuando degradar un
proceso
Método usado para determinar en que cola entra
un proceso cuando necesita servicio.
Sistemas Operativos –Planificación de Procesos
10
Ejemplo de Colas Multinivel Realimentadas
Tres colas:
Q0 – quantum de 8 milisegundos
Q1 – quantum de 16 milisegundos
Q2 – FCFS
Planificación
JRA © 2010
Un nuevo job entra a la cola Q0 el cual es servido
FCFS. Cuando gana la CPU, el job recibe 8
milisegundos. Si no finaliza en 8 milisegundos, el
job es movido a la cola Q1.
En Q1 el job es nuevamente servido FCFS y recibe
16 milisegundos adicionales. Si aún no completa,
es movido a la cola Q2.
Sistemas Operativos –Planificación de Procesos
Colas Multinivel Realimentadas
JRA © 2010
Sistemas Operativos –Planificación de Procesos
11
Planificación Múltiple-Procesador
La planificación de CPU es mas compleja
cuando hay disponibles múltiples CPUs.
Procesadores homogéneos en un
multiprocesador.
Carga compartida
Multiprocesamiento Asimétrico – solo un
procesador accede a las estructuras de datos
del sistema, simplificando el manejo de datos
compartidos.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
Planificación Tiempo Real
Sistemas de Tiempo Real Duro – requiere
completar tareas críticas en una cantidad de
tiempo garantizado.
Computación de Tiempo Real Blando –
requiere que los procesos críticos reciban
prioridad sobre otros.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
12
Planificación de Hilos
Planificación Local – Como deciden las librerías de
hilos poner el hilo en un LWP (Light-Weight
Process)
Planificación Global – Como el kernel decide que
hilo del kernel es el siguiente que corre
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Planificación en Linux
Dos algoritmos: tiempo compartido y tiempo real
Tiempo compartido
Prioriza basado en créditos – procesos con más créditos son
planificados primero
Los créditos se restan cuando la interrupción del timer ocurre
Cuando el crédito = 0, es elegido otro proceso
Cuando todos los procesos tienen crédito = 0, ocurre una
reacreditación
Basada
en factores que incluyen prioridad e historia
Tiempo real
Tiempo real blando
Posix.1b compliant – dos clases
FCFS
y RR
Proceso
JRA © 2010
de más alta prioridad siempre corre primero
Sistemas Operativos –Planificación de Procesos
13
Planificación en UNIX y Linux
La planificación tradicional en UNIX emplea colas
multinivel ( los niveles se definen en bandas de
prioridades) usando Round Robin en cada una de ellas:
Pj ( i ) = Basej +
CPUj ( i ) =
JRA © 2010
CPUj (i )
2
+ nicej
CPUj (i - 1)
(1)
(2)
2
Sistemas Operativos –Planificación de Procesos
Planificación en UNIX y Linux
CPUj (i ) = Mide la utilización del procesador por el proceso j en el
intervalo i.
Pj ( i )
= Prioridad del proceso j en el comienzo del intervalo i;
valores bajos implican prioridades altas.
Basej = Prioridad base del proceso j.
nicej = Factor de ajuste controlable por el usuario
(1) Es utilizada para ajustar dinámicamente la prioridad (producto
del uso de CPU).
(2) Es usada para implementar el “envejecimiento” cuando el
proceso espera. Así evita la inanición.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
14
Planificación en UNIX y Linux
La prioridad de cada proceso es computada cada
segundo (en los primeros UNIX, hoy es cada quantum).
El propósito de la prioridad base es dividir todos los
procesos en bandas de niveles de prioridad.
Los componentes CPU y nice se utilizan para prevenir
que los procesos migren fuera de su banda asignada
(dada por la prioridad base).
Estas bandas son utilizadas para optimizar el acceso a
los dispositivos que se manejan con bloques de
información (discos, cintas, CD, etc) y permitir al sistema
operativo responder rapidamente a las llamadas al
sistema.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
Planificación en UNIX y Linux
En orden decreciente de prioridad, las bandas son:
Swapper.
Control de dispositivos de E/S en bloques.
Manipulación de archivos.
Control de dispositivos de E/S por caracteres.
Procesos de usuarios.
Dentro de la banda de procesos de usuario, el uso de
la historia de ejecución tiende a penalizar a los
procesos limitados por procesador a expensas de los
procesos limitados por E/S.
JRA © 2010
Sistemas Operativos –Planificación de Procesos
15
Evaluación de Algoritmos
Modelo Determinístico – toma una carga de
trabajo predeterminada y define el rendimiento
de cada algoritmo para esa carga.
Modelo de colas
Implementación
JRA © 2010
Sistemas Operativos –Planificación de Procesos
JRA © 2010
Sistemas Operativos –Planificación de Procesos
16
Fin
Módulo 5
Departamento de Informática
Facultad de Ingeniería
Universidad Nacional de la Patagonia “San Juan Bosco”
17
Descargar