Cómo funciona la planificación de CPU
Hay un solo puesto y muchas tareas esperando. A quién se llama primero cambia lo que todos esperan.
¿A quién llamar primero?
Hay una sola ventanilla y mucha gente esperando. Como solo se puede llamar a una persona a la vez, hay que decidir quién va primero. ¿Quien llegó antes? ¿Quien terminará rápido su trámite? ¿Quien tiene prisa?
Decidir así el orden en que se llama se llama planificación. Delante de la CPU también hacen fila las tareas, y alguien tiene que decidir cuál atender primero.
Es el mismo problema que tienen siempre una sala de urgencias o una ventanilla del banco al decidir a quién llamar antes.
Un solo puesto, muchas tareas esperando. Decide el orden en que se llama.
La planificación consiste en decidir cuál de las tareas que esperan se atiende primero.
Si cambia el orden, cambia la espera
Hay tres clientes iguales: uno tiene una tarea larga y dos, cortas.
La fila de arriba los llama por orden de llegada. Si la tarea larga va primero, las dos cortas de detrás esperan mucho hasta que termina. La fila de abajo llama primero a las cortas. Las dos cortas terminan enseguida y solo queda la larga.
Los clientes y las tareas son los mismos, pero con solo cambiar el orden, cambió el promedio del tiempo que todos esperaron.
Si la tarea larga va delante, cada persona que está detrás tiene que esperar ese tiempo largo entero, y por eso el promedio se dispara.
Aun con los mismos tres, la espera promedio cambia según el orden en que se llama.
Aunque la cantidad de trabajo sea la misma, cambiar el orden cambia el tiempo de espera promedio.
Decide tú el orden
Hay cuatro clientes esperando, cada uno con una tarea de distinta duración.
Al cambiar el orden en que se llama, abajo aparece enseguida el promedio de lo que todos esperaron. Si pones delante las tareas cortas, el promedio baja; si pones delante las largas, sube.
Prueba distintos órdenes y busca el que más baja el promedio.
En realidad, llamar siempre primero a la tarea más corta de las que quedan es la forma de dejar la espera promedio lo más baja posible.
Observa cómo cambia la espera promedio cada vez que cambias el orden.
Poner delante las tareas cortas baja la espera promedio, pero no siempre es la respuesta correcta.
Lo rápido no siempre es lo mejor
Si se sigue llamando primero solo a las tareas cortas, el promedio baja. Pero un cliente con una tarea muy larga puede ver cómo su turno se aplaza una y otra vez y esperar sin fin.
Por eso existe otra forma: en vez de dárselo todo a uno, dar a todos un turno, un poco cada vez, para que nadie quede relegado para siempre.
Eso sí, turnarse a menudo cuesta lo que cuesta cada cambio de puesto. Elijas rapidez o justicia, ninguna opción sale gratis.
Igual que una videollamada que necesita respuesta inmediata se trata distinto de una descarga grande que puede esperar un poco, el equilibrio cambia según la situación.
Primero las tareas cortas es rápido, pero las largas pueden quedar relegadas una y otra vez.
La rapidez que baja el promedio y la justicia que no deja atrás a nadie hay que equilibrarlas entre sí.
Resumen en una página
Solo hay que recordar tres cosas.
Primera: planificar es decidir el orden en que se llama, porque hay un solo puesto y muchas tareas esperando.
Segunda: si cambia el orden, cambia la espera promedio; poner delante las tareas cortas la reduce. Tercera: aun así, no hay una única respuesta correcta: rapidez y justicia se intercambian, y turnarse a menudo tiene su propio costo.
Por bien que se ordene, no aparece tiempo nuevo de la nada. Solo se decide cómo repartir la espera, y cuánta le toca a cada uno.
El orden cambia el promedio, y rapidez y justicia se intercambian.