Planificador
Enviado por fenixblanco • 3 de Diciembre de 2012 • 309 Palabras (2 Páginas) • 471 Visitas
El planificador es el componente del sistema operativo que
se encarga de repartir el procesador entre los procesos
listos
• El planificador del Linux es preemptivo
• Fue reescrito completamente para la versión 2.6 (dos
veces)
• Intenta lograr buen tiempo de respuesta interactivo por lo
que favorece a los procesos limitados por I/O
• También asegura que los procesos limitados por CPU
puedan ejecutar alguna vez
Depende de la clase de planificación del proceso
(scheduling class)
– SCHED_FIFO
– SCHED_RR
– SCHED_NORMAL
• Las dos primeras son para procesos de tiempo real, la
segunda es para los demás
• Usa algoritmos distintos para cada una de ellas
Todas sus operaciones corren en tiempo constante
independientemente de la cantidad de procesos en el
sistema (O(1))
• Maneja colas separadas por procesador
• Intenta que los procesos corran siempre en la misma CPU
• Está optimizado para el caso más común de pocos
procesos listos, pero escala a varios procesadores con
muchos procesos listos
• Está basado completamente en consideraciones empíricas
Prioridades
• El planificador de Linux está basado en prioridades
• Ejecuta siempre el proceso de mayor prioridad
• Además el timeslice es mayor cuanto mayor sea la
prioridad.
• Linux usa prioridades dinámicas: el planificador puede
aumentar o disminuir la prioridad de un proceso
• Para procesos normales la prioridad va de 100 a 139
– Se corresponden con nice de -20 a 19
• Para procesos de tiempo real va de 0 a 99TSO – Planificador - 2012
Timeslice
• El cuanto por defecto de Linux es de 100 ms
• El cuanto de un proceso depende de su prioridad (estática)
– (140 – prioridad) x 20 si prioridad < 120
– (140 – prioridad) x 5 si prioridad >= 120
• Por ejemplo
– prioridad = 100 → cuanto = 800 ms
– prioridad = 139 → cuanto = 5 ms
• No es necesario usar todo el cuanto de una vez, al
bloquearse se guarda el resto
• Al hacer un fork el timeslice se divide entre dos
...