Planificación de CPU
La planificación de CPU es la función del sistema operativo que decide qué proceso o hilo listo se ejecuta a continuación en un procesador, equilibrando objetivos como la capacidad de respuesta, el rendimiento, la equidad y el cumplimiento de los plazos.
Definition
La planificación de CPU es la política y el mecanismo mediante el cual un sistema operativo selecciona, de entre los procesos o hilos ejecutables, a cuál asignar el procesador y por cuánto tiempo, con el fin de optimizar los objetivos de rendimiento y equidad elegidos.
Scope
Este tema cubre las políticas de planificación y su evaluación: primero en llegar, primero en ser atendido; el trabajo más corto primero; round-robin; prioridad; y colas de retroalimentación multinivel; planificación preventiva versus no preventiva; los criterios de utilización de la CPU, rendimiento, tiempo de respuesta, tiempo de espera y tiempo de respuesta; y la planificación en multiprocesadores y para sistemas en tiempo real. Excluye la representación de las tareas que se planifican (gestión de procesos e hilos) y la sincronización (concurrencia).
Core questions
- ¿Mediante qué criterios se mide la calidad de la planificación?
- ¿Cómo difieren los algoritmos de planificación comunes en equidad y eficiencia?
- ¿Cuándo debería el planificador desalojar una tarea en ejecución?
- ¿Cómo se adapta la planificación para multiprocesadores y plazos en tiempo real?
Key concepts
- primero en llegar, primero en ser atendido
- el trabajo más corto primero
- round-robin y cuanto de tiempo
- planificación por prioridad
- colas de retroalimentación multinivel
- preventivo vs no preventivo
- tiempo de respuesta, espera y respuesta
- inanición y envejecimiento
- planificación en tiempo real
Key theories
- Objetivos y compensaciones de la planificación
- Ninguna política única optimiza todos los objetivos: el trabajo más corto primero minimiza el tiempo de espera promedio pero puede causar inanición a trabajos largos, round-robin limita el tiempo de respuesta con cierto costo de rendimiento, y los esquemas de prioridad conllevan riesgo de inanición, por lo que los planificadores equilibran el rendimiento, la equidad y la capacidad de respuesta para su carga de trabajo.
Mechanisms
El planificador se ejecuta cuando un proceso se bloquea, cede o su cuanto de tiempo expira, eligiendo la siguiente tarea de la cola de listos de acuerdo con su política. Round-robin asigna a cada tarea una porción de tiempo a su vez; las colas de prioridad y de retroalimentación multinivel ordenan las tareas por importancia y comportamiento observado, utilizando el envejecimiento para prevenir la inanición. Los planificadores preventivos pueden interrumpir una tarea en ejecución para cambiar a una de mayor prioridad, lo cual es esencial para la interactividad y los plazos en tiempo real.
Clinical relevance
La planificación moldea directamente la experiencia del usuario y la eficiencia del sistema: determina si las aplicaciones interactivas se sienten receptivas, si las cargas de trabajo por lotes se completan rápidamente y si las tareas en tiempo real cumplen con los plazos. Los planificadores en sistemas de producción como Linux equilibran estos objetivos contrapuestos en muchos núcleos y diversas cargas de trabajo.
History
Los problemas de planificación surgieron con la multiprogramación y el tiempo compartido en la década de 1960, cuando se desarrollaron esquemas round-robin y de prioridad para compartir procesadores. La teoría de la planificación en tiempo real, incluidos los análisis de tasa monótona y de plazo más temprano primero, se formalizó en la década de 1970, y los modernos planificadores multinúcleo extendieron estas ideas a muchos procesadores.
Debates
- Equidad versus rendimiento y prioridad
- Los planificadores deben conciliar la equidad entre las tareas con la maximización del rendimiento y el respeto de las prioridades; una priorización agresiva mejora las tareas importantes pero corre el riesgo de dejar sin recursos a otras, mientras que una equidad estricta puede subutilizar el sistema, por lo que los planificadores prácticos ajustan el equilibrio.
Key figures
- Edsger W. Dijkstra
- Abraham Silberschatz
- Andrew S. Tanenbaum
- C. L. Liu
- James W. Layland
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- ¿Cuál es la diferencia entre la planificación preventiva y la no preventiva?
- La planificación no preventiva permite que una tarea en ejecución mantenga el procesador hasta que se bloquee o finalice. La planificación preventiva puede quitar el procesador por la fuerza, por ejemplo, cuando su porción de tiempo expira o una tarea de mayor prioridad está lista, lo que mejora la capacidad de respuesta y es necesario para las garantías en tiempo real.
- ¿Qué es la inanición y cómo se previene?
- La inanición ocurre cuando una tarea nunca se planifica porque las tareas de mayor prioridad toman precedencia continuamente. Generalmente se previene mediante el envejecimiento, que eleva gradualmente la prioridad de las tareas que esperan mucho tiempo para que finalmente se ejecuten.