You are on page 1of 17

1

Mdulo 5
Departamento de Informtica
Facultad de Ingeniera
Universidad Nacional de la Patagonia San Juan Bosco
Planificacin de Procesos
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin de Procesos
Conceptos Bsicos
Criterios de Planificacin
Algoritmos de Planificacin
Planificacin de Mltiples Procesadores
Planificacin en Tiempo Real
Planificacin de hilos
Evaluacin Algoritmos
2
Sistemas Operativos Planificacinde Procesos
JRA 2010
Conceptos Bsicos
Mxima utilizacin de CPU obtenida con
multiprogramacin
Ciclo CPUrfagas (bursts) de E/S La ejecucin de
procesos consiste de ciclos de ejecucin de CPU y
esperas en E/S.
Distribucin de rfagas de CPU
Sistemas Operativos Planificacinde Procesos
JRA 2010
Secuencia Alternada de Rfagas de CPU y E/S
3
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificador de CPU
Selecciona entre los procesos en memoria que estn
listos para ejecutar, y aloca la CPU a uno de ellos.
La decisin 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 planificacin de 1 y 4 es no apropiativa.
Las otras planificaciones son apropiativas.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Despachador
El mdulo despachador pasa el control de la CPU al
proceso seleccionado por el planificador de corto
trmino; esto implica:
cambio de contexto
conmutacin a modo usuario
salta a la direccin apropiada en el programa de
usuario para reiniciarlo
Latencia de despacho tiempo que toma al
despachador para detener un proceso e iniciar otro.
4
Sistemas Operativos Planificacinde Procesos
JRA 2010
Criterios de Planificacin
Utilizacin de CPU mantener la CPU tan ocupada
como sea posible
Procesamiento total (Throughput) nmero de
procesos que completan sus ejecucin 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.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Criterios de Optimizacin
Maximizar la utilizacin de CPU
Maximizar el procesamiento total
Minimizar el tiempo de retorno
Minimizar el tiempo de espera
Minimizar el tiempo de respuesta
5
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin Primero-Entrar, Primero-Servido (FCFS)
Ejemplo: Proceso Tiempo de Rfaga
P
1
24
P
2
3
P
3
3
Suponer que los procesos llegan en el orden: P
1
, P
2
, P
3
La carta de Gantt para la planificacin es:
Tiempo de espera para P
1
= 0; P
2
= 24; P
3
= 27
Tiempo medio de espera: (0 + 24 + 27)/3 = 17
P
1
P
2
P
3
24 27 30 0
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin FCFS (Cont.)
Suponer que los procesos llegan en el orden
P
2
, P
3
, P
1
.
La carta de Gantt para la planificacin es:
Tiempo de espera para P
1
= 6; P
2
= 0
;
P
3
= 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
P
1
P
3
P
2
6 3 30 0
6
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin Job-Mas Corto Primero (SJF)
Se asocia con cada proceso la longitud de su prxima
rfaga 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 rfaga de CPU.
Apropiativo si un nuevo proceso llega con una
longitud de rfaga de CPU menor que el resto del
tiempo de ejecucin 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 mnimo tiempo de espera promedio
para un dado conjunto de procesos.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Proceso Tiempo de llegada Rfaga
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4
SJF (no apropiativo)
Tiempo medio de espera = (0 + 6 + 3 + 7)/4 = 4
Ejemplo de SJF No Apropiativo
P
1
P
3
P
2
7 16 0
P
4
8 12
7
Sistemas Operativos Planificacinde Procesos
JRA 2010
Ejemplo SJF Apropiativo
Proceso Tiempo de llegada Rfaga
P
1
0.0 7
P
2
2.0 4
P
3
4.0 1
P
4
5.0 4
SJF (apropiativo)
Tiempo medio de espera = (9 + 1 + 0 +2)/4 = 3
P
1
P
3
P
2
4 2
11
0
P
4
5 7
P
2
P
1
16
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin por Prioridad
Con cada proceso se asocia un nmero (entero)
La CPU es alocada al proceso con prioridad mas alta
(entero mas pequeo mas alta prioridad o el entero
mas grande, depende de la convencin).
Apropiativo
No apropiativo
SJF es un algoritmo planificador con prioridad.
Problema Inanicin los procesos de baja
prioridad pueden no llegar a ejecutarse nunca.
Solucin Envejecimiento se incrementa en el
tiempo la prioridad de los procesos en espera.
8
Sistemas Operativos Planificacinde Procesos
JRA 2010
Round Robin (RR)
Cada proceso toma una pequea 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 Planificacinde Procesos
JRA 2010
Ejemplo: RR con Quantum = 20
Proceso Rfaga
P
1
53
P
2
17
P
3
68
P
4
24
La carta de Gantt:
Tipicamente, mas tiempo de retorno promedio que SJF,
pero mejor respuesta.
P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 37 57 77 97 117 121 134 154 162
9
Sistemas Operativos Planificacinde Procesos
JRA 2010
Como un Quantum PEQUEO Incrementa los Cambios de
Contexto
tiempo de proceso = 10 conmutacin
contexto
quantum
Sistemas Operativos Planificacinde Procesos
JRA 2010
Colas Multinivel
La cola de listos esta particionada en colas separadas:
foreground (interactive)
background (batch)
Cada cola tiene su propio algoritmo de planificacin,
foreground RR
background FCFS
La planificacin debe ser hecha entre las colas.
Planificacin con prioridad fija; p.e., servir desde el
foreground y luego del background. Posibilidad de
inanicin.
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
10
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin con Colas Multinivel
Sistemas Operativos Planificacinde Procesos
JRA 2010
Colas Multinivel Realimentadas
Un proceso puede moverse entre varias colas.
El planificador de colas multinivel realimentadas est
definido por los siguientes parmetros:
Nmero de colas
Algoritmos de planificacin para cada cola
Mtodo usado para determinar cuando mejorar un
proceso
Mtodo usado para determinar cuando degradar un
proceso
Mtodo usado para determinar en que cola entra
un proceso cuando necesita servicio.
11
Sistemas Operativos Planificacinde Procesos
JRA 2010
Ejemplo de Colas Multinivel Realimentadas
Tres colas:
Q
0
quantum de 8 milisegundos
Q
1
quantum de 16 milisegundos
Q
2
FCFS
Planificacin
Un nuevo job entra a la cola Q
0
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 Q
1
.
En Q
1
el job es nuevamente servido FCFS y recibe
16 milisegundos adicionales. Si an no completa,
es movido a la cola Q
2
.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Colas Multinivel Realimentadas
12
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin Mltiple-Procesador
La planificacin de CPU es mas compleja
cuando hay disponibles mltiples CPUs.
Procesadores homogneos en un
multiprocesador.
Carga compartida
Multiprocesamiento Asimtrico solo un
procesador accede a las estructuras de datos
del sistema, simplificando el manejo de datos
compartidos.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin Tiempo Real
Sistemas de Tiempo Real Duro requiere
completar tareas crticas en una cantidad de
tiempo garantizado.
Computacin de Tiempo Real Blando
requiere que los procesos crticos reciban
prioridad sobre otros.
13
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin de Hilos
Planificacin Local Como deciden las libreras de
hilos poner el hilo en un LWP (Light-Weight
Process)
Planificacin Global Como el kernel decide que
hilo del kernel es el siguiente que corre
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin en Linux
Dos algoritmos: tiempo compartido y tiempo real
Tiempo compartido
Prioriza basado en crditos procesos con ms crditos son
planificados primero
Los crditos se restan cuando la interrupcin del timer ocurre
Cuando el crdito = 0, es elegido otro proceso
Cuando todos los procesos tienen crdito = 0, ocurre una
reacreditacin
Basada en factores que incluyen prioridad e historia
Tiempo real
Tiempo real blando
Posix.1b compliant dos clases
FCFS y RR
Proceso de ms alta prioridad siempre corre primero
14
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin en UNIX y Linux
La planificacin tradicional en UNIX emplea colas
multinivel ( los niveles se definen en bandas de
prioridades) usando Round Robin en cada una de ellas:
CPU
j
( i ) =
CPU
j
(i - 1)
2
(2)
P
j
( i ) = Base
j
+
CPU
j
(i )
2
+ nice
j
(1)
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin en UNIX y Linux
nice
j
=
P
j
( i ) =
CPU
j
(i ) =
Base
j
=
Mide la utilizacin del procesador por el proceso j en el
intervalo i.
Prioridad del proceso j en el comienzo del intervalo i;
valores bajos implican prioridades altas.
Prioridad base del proceso j.
Factor de ajuste controlable por el usuario
(1) Es utilizada para ajustar dinmicamente la prioridad (producto
del uso de CPU).
(2) Es usada para implementar el envejecimiento cuando el
proceso espera. As evita la inanicin.
15
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin en UNIX y Linux
La prioridad de cada proceso es computada cada
segundo (en los primeros UNIX, hoy es cada quantum).
El propsito 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
informacin (discos, cintas, CD, etc) y permitir al sistema
operativo responder rapidamente a las llamadas al
sistema.
Sistemas Operativos Planificacinde Procesos
JRA 2010
Planificacin en UNIX y Linux
En orden decreciente de prioridad, las bandas son:
Swapper.
Control de dispositivos de E/S en bloques.
Manipulacin 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 ejecucin tiende a penalizar a los
procesos limitados por procesador a expensas de los
procesos limitados por E/S.
16
Sistemas Operativos Planificacinde Procesos
JRA 2010
Evaluacin de Algoritmos
Modelo Determinstico toma una carga de
trabajo predeterminada y define el rendimiento
de cada algoritmo para esa carga.
Modelo de colas
Implementacin
Sistemas Operativos Planificacinde Procesos
JRA 2010
17
Mdulo 5
Departamento de Informtica
Facultad de Ingeniera
Universidad Nacional de la Patagonia San Juan Bosco
Fin

You might also like