Quién usa la CPU ahora
Un núcleo atiende una tarea a la vez y muchas esperan. Al terminar sabrás cuándo se decide quién sigue y cómo medir si se decidió bien.
Primero, la idea completa
Mira el video entero o salta a la parte que quieras repasar. Después, cada idea tiene su propia escena para tocarla.
Para qué sirve el planificador
Un núcleo ejecuta una sola tarea a la vez. Los demás procesos listos esperan en memoria. La planificación de CPU decide a quién le toca el núcleo cada vez que queda libre, y es la base de la multiprogramación: si un proceso se detiene a esperar algo, la CPU no se queda parada, pasa a otro.
En los sistemas modernos lo que se planifica en realidad son los hilos de kernel, no los procesos. Por eso se habla de planificar procesos o hilos casi como sinónimos.
02 · RáfagasCPU, espera, CPU, espera
Casi ningún programa usa la CPU sin parar. Su vida es un ciclo: una ráfaga de CPU (calcula), luego una ráfaga de E/S (espera al disco, la red o el teclado), otra ráfaga de CPU, y así hasta terminar. Observar ese ciclo es la clave para planificar bien.
- Un proceso limitado por E/S (un editor, un navegador) tiene ráfagas de CPU frecuentes y cortas.
- Un proceso limitado por CPU (un compilador, un renderizado) tiene ráfagas pocas y largas.
Si se mide la duración de muchas ráfagas, la mayoría son cortas y pocas son largas.
Elige un programa y mira cómo alterna ráfagas de CPU con esperas de E/S en 40 ticks.
Cuándo actúa el planificador
Hay cuatro situaciones en las que el planificador puede tener que elegir:
- El proceso en ejecución pasa a espera: pidió E/S o llamó a
wait(). - El proceso en ejecución pasa a listo: llegó una interrupción, por ejemplo del reloj.
- Un proceso pasa de espera a listo: terminó su E/S.
- El proceso en ejecución termina.
Provoca cada situación y mira qué transición ocurre y si el planificador está obligado a elegir.
Expropiativo y no expropiativo
En la planificación no expropiativa, cuando un proceso recibe la CPU la conserva hasta que termina o pasa a espera: solo las situaciones 1 y 4 provocan una decisión. En la expropiativa, también se le puede quitar en las situaciones 2 y 3, por una interrupción o porque apareció alguien más importante.
Hoy casi todos los sistemas son expropiativos, porque así atienden enseguida las tareas urgentes. El costo es la complejidad: el código del sistema debe estar preparado para ser interrumpido en cualquier momento, por ejemplo a mitad de actualizar datos compartidos.
05 · El que cambia de procesoEl despachador
El planificador elige; el despachador (dispatcher) es el componente que efectivamente entrega el núcleo al elegido. Para eso:
- guarda el estado del proceso que sale;
- restaura el estado del proceso que entra;
- hace el cambio de contexto y salta al punto donde ese proceso se había quedado.
Se ejecuta en cada cambio de proceso, así que debe ser muy rápido. El tiempo que tarda en detener uno y arrancar otro se llama latencia de despacho ampliación.
06 · Cómo se comparaCriterios de planificación
- Uso de CPU: qué tanto está ocupada. Lo ideal va de un 40 % a un 90 %.
- Rendimiento (throughput): procesos terminados por unidad de tiempo.
- Tiempo de retorno: desde que el proceso llega hasta que termina, sumando esperas, ejecución y E/S.
- Tiempo de espera: lo que pasa en la cola de listos. Es lo único que depende directamente del algoritmo de planificación.
- Tiempo de respuesta: desde la solicitud hasta la primera respuesta. Es clave en sistemas interactivos.
Se busca más uso y rendimiento, y menos retorno, espera y respuesta.
Tres procesos en una CPU. Elige uno y mira sus tiempos marcados sobre el diagrama.
Antes de leer la respuesta
Cada cambio vuelve a simular todo. En el diagrama de Gantt, cada color es un proceso y las rayas son la CPU libre. Mueve la barra de tiempo para ver quién estaba en la cola y quién esperaba su E/S en ese instante.
Tu turno: una CPU, tres trabajos
Una CPU y tres trabajos. El editor calcula 1 tick y espera 3 ticks al teclado, una y otra vez. El compilador calcula 14 ticks, lee el disco 2 y calcula 14 más. El respaldo llega en t = 2 y calcula 10 ticks seguidos. Agrega trabajos, cambia entre planificación sin expropiación (FCFS) y con expropiación (Round Robin, 2 ticks por turno), y observa el uso de CPU y la espera más larga del editor.
Comprueba lo que entendiste
Cada respuesta incorrecta explica por qué parece correcta y en qué falla.