Está en la página 1de 48

SISTEMAS OPERATIVOS

Planificación de Procesos
Planificación de la CPU…
• Gestionar la compartición de la CPU entre una
comunidad de procesos/hilos.

• Planificador del SO:


– Un MECANISMO para la conmutación de contexto
• Cómo se asignará la CPU
• Cómo se desalojará al hilo
– Una POLITICA determina el orden de servicio.
• Cuándo es el momento de desalojar el hilo
• Cuál es el hilo elegible
Planificación de la CPU…
• Visión del sistema:
Apropiación o Cesión Voluntaria

Nuevo Lista de
Preparados
Planificador CPU Hecho
Hilo
Trabajo Trabajo

Preparado Trabajo Ejecutándose

Gestor de
Asignado Recursos Petición
Trabajo
Trabajo Bloqueado

Recursos
Planificación de la CPU

• Razones para que el hilo deje de utilizar la


CPU:
– Completa su función
– Solicita un recurso
– Decide abandonar voluntariamente la CPU
– Abandona involuntariamente la CPU
Mecanismo de Planificación…

• Depende de las características del Hw:


– Tiene temporizador?
– Implementado por medio de Sw del SO
– Organización del planificador:
• Encolador
• Conmutador de contexto
• Distribuidor
Mecanismo de Planificación
De otros
Estados

Descriptor de
Proceso Preparado Procesos

Lista de
Encolador Preparados

Conmutador
Distribuidor CPU
de Contexto
Proceso en
Ejecución
Compartición de la CPU

• Compartición voluntaria
– Cada proceso/hilo invoca explícitamente y
de modo periódico al planificador
– Planificador no apropiativo
• Compartición involuntaria
– Incluir temporizador de intervalo
– Planificador apropiativo
Criterios de planificación

• Justicia
• Eficiencia
• Tiempo de retorno (turnaround time)
• Tiempo de espera
• Tiempo de respuesta
• Rendimiento
Maximizar la utilización de la CPU y minimizar los
tiempos de retorno, de espera y de respuesta, todo
ello con la mayor justicia para todos los procesos
Planificadores

• Planificador a largo
plazo o planificadores
de trabajo
• Planificadores a corto
plazo o planificadores
de CPU
• Planificadores a
mediano plano
Tipos de procesos

• Limitado por E/S


• Bloques frecuentes
de E/S.

• Limitado por CPU


• Ráfagas grandes
de procesador.
Planificación no apropiativa...

Puede ser:

Planificación Fisrt – Come – First – Served


(FCFS).
El trabajo más corto (SJF).
Por prioridades
Por tiempo límite
FCFS

Ventajas Desventajas

• El proceso que primero solicita • Las varianzas grandes en el


la CPU es al primero que se le tiempo de espera no son
asigna. deseables el desempeño de
• Su comportamiento es un trabajo depende del
predecible. comportamiento de otros
trabajos.
• Es fácil de implementar.
• Sufre el efecto convoy
• Es fácil de entender.
FCFS

Proceso T. Servicio
0 350
1 125
2 475
3 250
4 75

0 350 475 950 1200 1275


P0 P1 P2 P3 P4
Trabajo más corto (SJF)

 Cada proceso tiene asociado la longitud de la


siguiente ráfaga de procesamiento.
 Se asigna el procesador al proceso que trae la ráfaga
más corta de CPU.
 Esta política previene el efecto convoy.
 Si se da el caso que dos procesos tienen la misma
longitud de ráfaga  FCFS.
Trabajo más corto (SJF)

 El algoritmo SJF es óptimo en tiempo promedio de


espera.
 Este algoritmo es probablemente el planificador
óptimo para un conjunto de trabajos .
 Se decrementa el tiempo de respuesta (Twait) de
los procesos cortos, se incrementa el Twait de los
procesos largos.
 Se disminuye el Twait promedio.
Trabajo más corto (SJF)

 SFJ  utilizado para la planificación a largo plazo


en sistemas batch
 Es menos útil para planificación a corto plazo 
no hay manera de conocer la longitud de la
siguiente ráfaga de procesamiento:

“El comportamiento pasado, predice el futuro”


Trabajo más corto (SJF)
Proceso T. Servicio
0 350
1 125
2 475
3 250
4 75

0 75 200 450 800 1275


P4 P1 P3 P0 P2
Por Prioridades

 Cada proceso tiene asociado una prioridad


 El proceso de mayor prioridad se ejecuta primero
 Procesos de igual prioridad se usa FCFS
 Casos especiales:
 SJF  prioridad es la inversa del tiempo
requerido de CPU.
 FCFS  prioridad es entregado por orden de
llegada de los procesos
Por Prioridades

 No Apropiativo: se coloca al nuevo proceso en la


cabeza de la cola Listo.
 Apropiativo: si prioridad es mayor al proceso en
ejecución, se le expropia la CPU a éste a favor
del recién llegado.
Por Prioridades
Criterios para definir la prioridad:
 Rango o categoría del usuario (multiusuario).
 Tipo de proceso: sistema, interactivo, o por
lotes.
 Factores políticos
 Razones físicas (sistemas de tiempo real)
 Cuánto hayan ocupado la CPU.
Por Prioridades
 Problema:
 Inanición o Hambruna
• Dejar a un proceso de baja prioridad esperando
indefinidamente por el procesador  hay algún
proceso de mayor prioridad.
 Solución  Envejecimiento
• La prioridad de los procesos listos se
incrementa gradualmente (reloj).
• La prioridad de los procesos que se ejecutan
se va disminuyendo.
Por Prioridades
Proceso T. Servicio Prioridad
0 350 5
1 125 2
2 475 3
3 250 1
4 75 4

0 250 375 850 925 1275


P3 P1 P2 P4 P0
Por Tiempo límite
 Sistemas de tiempo real (estricto)
 ¿El sistema será capaz de cumplir con la
planificación de los tiempos límites de este tipo de
procesos/hilo?
 Precisan conocer el máximo tiempo de servicio de
cada proceso, para cada periodo de vida.
 Debe ser admitido en la lista de preparados si el
planificador garantiza que es capaz de proveerle el
tiempo necesario antes del tiempo límite impuesto.
Por Tiempo límite
Proceso T. Servicio T. Limite
0 350 575
1 125 550
2 475 1050
3 250 (none)
4 75 200

0 125 200 550 1025 1275


P1 P4 P0 P2 P3

0 75 200 550 1025 1275


P4 P1 P0 P2 P3

0 75 425 550 1025 1275


P4 P0 P1 P2 P3
Planificación apropiativa
 Procesador es tomado por un proceso/hilo con
más alta prioridad
 Proceso creado recientemente alta prioridad
 Proceso de alta prioridad puede ser generado por una
interrupción  reemplazo
 Proceso disminuye su prioridad  reemplazo

 Planificadores apropiativos sistemas de tiempo


compartido. Garantiza:
 Tiempo de respuesta rápidos para los hilos de alta
prioridad
 Compartición justa de la CPU
Planificación apropiativa
 SJF Apropiativo: Tiempo restante más corto
(SRTF)
 Si un proceso LISTO se verifica los tiempos faltantes de
CPU.
 Si el nuevo es menor que el que esta ejecutándose,
entonces se cambian los procesos.
 El proceso que estaba ejecutándose pasa a LISTO
 El nuevo se empieza a ejecutar.

 Prioridades Apropiativo:
 Si Pi esta Ejecutándose, y llega Pj con mas alta
prioridad, Pi es desalojado
Quantum
¿Cuánto debe ser el quantum adecuado?
 Si es muy grande:
 Mayor aprovechamiento de CPU por usuarios.
 Degenara en FCFS: Usuarios de terminales
“Que el sistema tarda mucho en atenderlos”

 Es muy pequeño:
 Usuarios son atendidos de inmediato, pero por muy
poco tiempo
 Degradamiento del aprovechamiento de CPU.
 Muchos cambios de contexto  overhead
Round Robin (RR)
 Sistemas multiusuario de tiempo compartido
 Similar a FCFS, añadiéndole la expropiación de la
CPU, cuando se sobrepasa el tiempo
preestablecido.
 Implementación:
 Cola FIFO para procesos Listos.
 Planificador selecciona un proceso  establece una
temporización correspondiente a la porción de tiempo.
 Cede el control al proceso. Puede ocurrir:
Round Robin (RR)
1. Proceso termina o realiza una operación de E/S
antes de acabar la porción de tiempo  cede CPU
voluntariamente.
 Proceso pasa a espera.
 Planificador selecciona proceso de Listo.

2. Proceso se ejecuta hasta que termine el quantum.


 Reloj genera un interrupción.
 Expropia la CPU del proceso en ejecución  pasa a
Listo.
 Planificador selecciona otro proceso de Listo.
Round Robin (RR)
 Ventaja:
 Con respecto a FCFS  mejora tiempo de
respuesta,
 Utilización de CPU  colas Listo y Bloqueado
se mantienen balanceadas.
 Desventaja:
 Tampoco se asegura que los tiempos de
espera sean los mínimos posibles.
Round Robin (RR)
Proceso T. Servicio
0 350 Quantum=50
1 125
2 475
3 250
4 75

0 100 200 300 400 475 550 650


P0 P1 P2 P3 P4 P0 P1 P2 P3 P4 P0 P1 P2 P3

650 750 850 950 1050 1150 1250 1275


P0 P2 P3 P0 P2 P3 P0 P2 P0 P2 P2 P2 P2
Round Robin (RR)
Proceso T. Servicio
0 350 Tiempo de conmutación=10
1 125
Quantum=50
2 475
3 250
4 75

0 120 240 360 480 540 575 635 670 790


P0 P1 P2 P3 P4 P0 P1 P2 P3 P4 P0 P1 P2 P3

790 910 1030 1150 1270 1390 1510 1535


P0 P2 P3 P0 P2 P3 P0 P2 P0 P2 P2 P2 P2
Colas Múltiples Niveles – MLQ
 Extensión de la planificación por prioridades
 Procesos clasificados en diferentes grupos
(depósitos):
• Procesos Interactivos (foreground).
• Procesos Batch (background).
 Cola Listo se divide en varias colas separadas  tipo
de proceso.
 Distintos algoritmos de planificación  diferentes
prioridades
 Dos algoritmos: uno para elegir la cola de la cual se
sacará el proceso y otro para elegir el proceso de la
cola.
Colas Múltiples Niveles
 Puede ocurrir que en dos colas distintas se utilice
la misma política de planificación:
 RR, pero con quantum diferentes.

 Ordenar las colas por “prioridad decreciente”:


 Cola de alta prioridad se vacía antes de moverse a la
siguiente cola.
 Distribuir tajadas de tiempo de CPU en las diferentes
colas:
 Cola del sistema  60% : RR
 Procesos por lotes  5% : FCFS
 Otras : resto.
Colas Múltiples Niveles

Procesos del Sistema (FCFS)

Procesos interactivos (RR Q=n)

Estudiantes interactivos (RR Qn) CPU


Otros estados

Profesores batch (SJF)

Estudiantes batch (SJF)

Cola Preparados
Colas Múltiples Niveles
Retroalimentadas- MLF
 Mezcla de las técnicas de envejecimiento y de las
múltiples colas.
 Las distintas colas pueden tener políticas de tiempo
compartido, pero las más prioritarias poseen menor
porción de tiempo.
 Un proceso se puede mover de una cola a otra:
 Un proceso lleva mucho tiempo en cola de poca
prioridad, se le pasa a otra de mayor prioridad (evita
envejecimiento)
 Proceso usa demasiado tiempo de CPU se pasa a una
cola de menor prioridad.
Colas Múltiples Niveles
Retroalimentadas- MLF

 Un proceso en la cola i que no termina su fase de CPU


dentro del quantum asignado  pasa al final de la siguiente
cola de menor prioridad, con mayor quantum.
 Un proceso en la cola i que si termina su fase de CPU
dentro del quantum asignado  pasa al final de la siguiente
cola de mayor prioridad, con menor quantum.
Colas Múltiples Niveles
Retroalimentadas- MLF
 MLF está definido por:
 Un número de colas
 Un algoritmo de planificación de cada cola.
 Un método para determinar cuando ascender un
proceso de una cola a otra de nivel superior.
 Un método para determinar cuando descender un
proceso de una cola a otra de más bajo nivel.
 Un método para determinar a que cola se ingresa
al sistema.
Planificación en
Multiprocesadores
Sistema Homogéneo:
 Cualquier procesador disponible  ejecuta un
proceso listo.

Sistema Heterogéneo:
 Programas compilados para un procesador, se
ejecutan en ese procesador.
 Cada procesador tiene su propia cola Listo, y su
propia planificación.
Planificación en
Multiprocesadores

Sistema Homogéneo:
 Planificación por si mismo (autoploanificación)
 Cada procesador es responsable de su
planificación y de sacar de la cola LISTO.
 Requiere sincronización entre
procesadores
• Cola Listo  cuello de botella.
Planificación en
Multiprocesadores
Sistema Homogéneo:
 Maestro/Esclavo
 Uno de los procesadores planifica.
 Ejecuta el SO
 Despacha los trabajos a los esclavos.
 Hace todo el procesamiento de las
interrupciones.
 Esclavo sólo ejecuta los programas.
 Puede ser el cuello de botella.
Evaluación de los algoritmos

¿Cómo seleccionar una política de


planificación?
 Definir métricas o criterios que interesen
 Maximizar el uso de CPU
 Maximizar la productividad
Evaluación de los algoritmos

Modelo determinista
 Considerar una carga de trabajo
determinada
 Necesita datos precisos como entrada. Las
respuestas sólo son válidas para esos casos
 Define el rendimiento de cada algoritmo
 Muy sencillo
 Válido cuando siempre se están ejecutando
los mismos programas y en el mismo orden
Evaluación de los algoritmos

Modelo determinista
Proceso T. Servicio
Minimizar Tespera?
1 10
2 29 • FCFS
3 3 • SJF
4 7
• RR (Q=10)
5 12

FCFS
0 10 39 42 49 61

P1 P2 P3 P4 P5

Tespera= (0+10+39+42+49)/5 = 28 miliseg.


Evaluación de los algoritmos

Modelo determinista
Proceso T. Servicio
1 10
2 29
3 3
4 7
5 12

SJF
0 3 10 20 32 61

P3 P4 P3 P5 P2

Tespera= (10+32+0+3+20)/5 = 13 miliseg.


Evaluación de los algoritmos

Modelo determinista
Proceso T. Servicio
1 10
2 29
3 3
4 7
5 12

RR (Q=10)
0 10 20 24 31 41 52 55 64
P1 P2 P3 P4 P5 P2 P5 P2

Tespera= (0+32+20+24+41)/5 = 23.4 miliseg.


Evaluación de los algoritmos

Simulaciones
 Método más preciso para medir algoritmos de
planificación
• Construir un simulador
• Generara en forma aleatoria procesos,
tiempos de ráfagas, tiempos de llegada, etc.
 Problema: muy caras
Evaluación de los algoritmos

Implantaciones
 Implantar el algoritmo en el SO y ver su
funcionamiento
• Más exacto
• Caro
• No adecuado para sistemas reales
(experimentando)

También podría gustarte