¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Algoritmos de planificación y tiempo de espera

Después de esta lección: Puedo comparar el orden y el tiempo de espera de FCFS, SJF y round robin.

Lección de 55 min3 comandosLaboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

Qué proceso debe ir primero

Un algoritmo de planificación es la regla con la que el sistema operativo elige qué proceso usa el procesador. Distintas reglas dan tiempos de espera muy distintos con los mismos procesos.

Saber compararlas con números te permite decir cuál conviene a un servidor y cuál a un portátil.

Imagina cuatro tareas de duración 6, 8, 7 y 3 llegando a la vez. El orden que elijas cambia cuánto espera cada una.

Al final de esta lección

Nota

Puedo comparar el orden y el tiempo de espera de FCFS, SJF y round robin.

Palabras clave

PalabraQué significa
FCFSprimero en llegar, primero en ser atendido
SJFprimero el trabajo más corto
Tiempo de esperael tiempo que un proceso pasa listo sin el procesador
Tiempo de retornodesde que llega hasta que termina
Tiempo de respuestadesde que llega hasta que empieza a ejecutarse
Efecto convoylos procesos cortos esperan detrás de uno largo

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

FCFS atiende por orden de llegada

En FCFS (first come, first served) el primer proceso que llega es el primero que se ejecuta, y trabaja hasta terminar. Es como la cola de una panadería.

El tiempo de espera de un proceso es lo que aguarda antes de empezar. El de retorno es esa espera más su propio trabajo. Aquí todos llegan en el instante 0, así que la espera es la suma de lo que duran los de delante.

Ejemplo: FCFS con 6, 8, 7 y 3

ProcesoDuraciónEmpiezaTerminaEsperaRetorno
A60606
B8614614
C714211421
D321242124
Media10,2516,25

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La espera media de FCFS

Comando
python3 -c "print(sum([0, 6, 14, 21]) / 4)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

D espera mucho siendo la más corta

La Run suma las cuatro esperas y las divide entre cuatro. Imprime 10.25: es la media de la tabla, con punto decimal porque así lo escribe Python.

D solo dura 3 y espera 21. Ese es el efecto convoy: un trabajo largo delante retrasa a todos los cortos.

SJF pone primero el trabajo más corto

En SJF (shortest job first) se ejecuta antes el proceso que menos dura. Con las mismas tareas el orden pasa a ser D (3), A (6), C (7) y B (8).

Las esperas son 0, 3, 9 y 16. La media baja de 10,25 a 7. SJF da la menor espera media posible. Su problema es que hay que conocer de antemano cuánto va a durar cada proceso.

La espera media de SJF

Comando
python3 -c "print((0 + 3 + 9 + 16) / 4)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Round robin reparte la espera entre todos

Con round robin y quantum 4, las cuatro tareas avanzan por turnos. D termina en el instante 15 y no espera a que acaben las demás.

La espera de cada una es su retorno menos su duración: 11, 13, 17 y 12. La media es 13,25, peor que en FCFS. A cambio, todas empiezan pronto: el tiempo de respuesta medio es 6, y en FCFS era 10,25.

Las tres reglas con las mismas tareas

ReglaEspera mediaRespuesta mediaCuándo conviene
FCFS10,2510,25Trabajos parecidos y sin prisa
SJF77Duraciones conocidas, trabajos por lotes
Round robin, quantum 413,256Equipos con personas delante

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La espera media de round robin

Comando
python3 -c "print((11 + 13 + 17 + 12) / 4)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que la regla con menor espera media es la mejor para todo. SJF gana en la media, pero puede dejar sin turno a los procesos largos. En un portátil importa más que todo responda pronto, y por eso se usa algo parecido a round robin.

Sobre este laboratorio y su código: Laboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.