La planificación de procesos es la decisión del sistema operativo sobre qué proceso listo recibe la CPU a continuación. En lenguaje sencillo, es la regla para elegir quién se ejecuta ahora y quién espera. Esa regla cambia el tiempo de espera, el tiempo de respuesta, la equidad y el rendimiento total.
La planificación de procesos importa porque el mismo conjunto de procesos puede terminar en un orden muy distinto con FCFS, SJF o round robin. Si entiendes esa idea, la mayoría de los ejemplos de los libros de texto se vuelven mucho más fáciles de leer.
Qué significa la planificación de procesos en sistemas operativos
En el modelo habitual de sistemas operativos, los procesos pasan por estados como listo, en ejecución y en espera. El planificador elige entre los procesos listos.
Por eso la planificación de procesos suele llamarse planificación de CPU. No crea trabajo nuevo. Decide el orden en que el trabajo en espera recibe servicio de CPU.
En los sistemas modernos, el kernel suele planificar hilos directamente, pero el término clásico "planificación de procesos" sigue siendo el término estándar en la enseñanza.
Qué intenta optimizar un planificador
Un planificador normalmente intenta equilibrar varios objetivos:
- bajo tiempo de espera
- respuesta rápida para tareas interactivas
- buen rendimiento
- equidad
- comportamiento predecible
Estos objetivos pueden entrar en conflicto. Una política que reduce el tiempo de espera promedio en un ejemplo simplificado puede seguir pareciendo injusta en la práctica, y una política justa de tiempo compartido puede retrasar la finalización de un trabajo corto.
Planificación expropiativa vs no expropiativa
Un planificador no expropiativo deja que un proceso en ejecución conserve la CPU hasta que termine su ráfaga de CPU o se bloquee. First-come, first-served es el ejemplo estándar.
Un planificador expropiativo puede interrumpir un proceso en ejecución y darle la CPU a otro. Round robin y muchos planificadores por prioridad hacen esto.
Esa distinción importa porque el tiempo de respuesta suele mejorar cuando el sistema puede interrumpir trabajo de larga duración.
Algoritmos comunes de planificación de procesos
First-Come, First-Served
First-come, first-served, o FCFS, ejecuta los procesos en orden de llegada. Es fácil de entender y simple de implementar, pero un trabajo largo al principio puede hacer que todos los trabajos cortos detrás de él tengan que esperar.
Shortest Job First
Shortest job first, o SJF, prefiere el proceso con la ráfaga de CPU más pequeña. En un entorno simplificado donde las longitudes de ráfaga se conocen con precisión, puede reducir el tiempo de espera promedio. En sistemas reales, esa longitud de ráfaga normalmente debe estimarse.
Round Robin
Round robin da a cada proceso listo una pequeña porción de tiempo llamada quantum. Si el proceso no termina en esa porción, vuelve a la cola de listos. Esto suele mejorar la equidad y la capacidad de respuesta en cargas de trabajo interactivas.
Priority Scheduling
La planificación por prioridad ejecuta primero el proceso listo con mayor prioridad. Puede ser útil cuando algunas tareas importan más que otras, pero si las tareas de baja prioridad esperan demasiado, la inanición se convierte en un riesgo.
Un ejemplo resuelto con tiempo de espera
Supón que tres procesos llegan todos en el tiempo y que cada uno necesita solo tiempo de CPU:
- :
- :
- :
Supón:
- hay una CPU
- no hay bloqueo por I/O
- se ignora el costo del cambio de contexto
Bajo esas condiciones, el tiempo de espera significa el tiempo pasado en la cola de listos antes de que un proceso se ejecute. El tiempo de retorno es
FCFS
Si se usa FCFS, el orden es .
Línea de tiempo:
Tiempos de espera:
Tiempo de espera promedio:
SJF
Si se usa SJF no expropiativo, el orden es .
Línea de tiempo:
Tiempos de espera:
Tiempo de espera promedio:
Este ejemplo muestra la intuición principal. La carga de trabajo no cambió, pero la regla cambió el resultado. Aquí, SJF da un tiempo de espera promedio menor porque los trabajos cortos no quedan atascados detrás del largo.
Eso no significa que SJF sea siempre la mejor opción en el mundo real. Significa que, bajo los supuestos de este ejemplo, el orden de planificación importa mucho.
La intuición que debes recordar
Piensa en la planificación de procesos como la disciplina de cola para la CPU. La cola de listos puede contener los mismos trabajos, pero la regla para atender esa cola cambia lo que experimentan los usuarios.
Si lo que más te importa es una primera respuesta rápida, quizá prefieras un reparto frecuente. Si lo que más te importa es terminar muchos trabajos cortos rápidamente, quizá prefieras una política que favorezca ráfagas cortas. Si te importa una temporización estricta, quizá necesites otro planificador.
Errores comunes en problemas de planificación
Suponer que una política es universalmente la mejor
No hay un único ganador para toda carga de trabajo. Una política puede verse excelente en tiempo de espera promedio y aun así ser mala en equidad o en plazos.
Confundir tiempo de espera, tiempo de respuesta y tiempo de retorno
Estas métricas están relacionadas, pero no son idénticas. En particular, el tiempo de respuesta normalmente significa el tiempo hasta el primer servicio de CPU o la primera respuesta visible, mientras que el tiempo de retorno mide todo el trabajo desde la llegada hasta la finalización.
Ignorar la condición detrás de la fórmula
Las métricas solo tienen sentido bajo los supuestos indicados. Si un problema incluye bloqueo por I/O, distintos tiempos de llegada o sobrecarga por cambio de contexto, la línea de tiempo y los resultados cambian.
Olvidar si la política es expropiativa
SJF y shortest remaining time first no son la misma regla. La planificación por prioridad también se comporta de forma distinta según si un trabajo de mayor prioridad puede interrumpir al actual.
Dónde se usa la planificación de procesos
La planificación de procesos importa en cualquier lugar donde un sistema operativo tenga que compartir tiempo de CPU:
- sistemas de escritorio y móviles que necesitan aplicaciones con buena capacidad de respuesta
- servidores que manejan muchas solicitudes
- sistemas por lotes que se preocupan por el rendimiento
- sistemas de tiempo real que se preocupan por las garantías temporales
Los planificadores reales suelen ser más complejos que las versiones de los libros de texto, pero las mismas compensaciones siguen apareciendo.
Prueba tu propia versión
Cambia el ejemplo para que llegue más tarde, o sustituye FCFS por round robin usando un quantum de , y observa cómo cambia el patrón de espera. Si quieres dar un paso más después de hacerlo a mano, prueba tu propia versión en GPAI Solver y compara tu línea de tiempo prevista con la calculada.
¿Necesitas ayuda con un problema?
Sube tu pregunta y obtén una solución verificada, paso a paso, en segundos.
Abrir GPAI Solver →