SkillGridAprende informática practicando

Planificación de la CPU

Cómo decide el sistema operativo quién se ejecuta después y por qué esa elección cambia tanto la espera media como la equidad.

14 min · 42 XP

Siempre hay más trabajo que CPU. El planificador elige un proceso listo cada vez, y esa elección determina quién espera. Distintos objetivos — rendimiento, latencia, equidad — llevan a distintos algoritmos.

Planificador de CPU

Primero llega un trabajo largo. Observa cómo espera todo lo que va detrás.

Procesos
ProcesoLlegadaDuraciónEstadoUsado
P106esperando—
P214esperando—
P322esperando—
P431esperando—
Cola de listos
  1. P1

P1 llega con una duración de 6 ms

Tiempo de espera medio
0
Tiempo de retorno medio
0
Tiempo total
0
Comparar algoritmos
AlgoritmoTiempo de espera medioTiempo de retorno medioTiempo total
First-Come, First-Served5.58.7513
Shortest Job First47.2513
Round-Robin5.75913

El tiempo de espera es cuánto estuvo un proceso listo sin ejecutarse. El tiempo de retorno va desde la llegada hasta la finalización. Estos dos números son los que realmente juzgan a un algoritmo de planificación.

Round-Robin da a cada proceso una porción fija (un quantum) y rota. Ningún proceso espera para siempre, por eso el sistema se siente ágil, pero quantums cortos implican más cambios de contexto, y esos cuestan tiempo real.

Ready queueCPUP1 runs (quantum = 2)quantum expired, P1 to the backP2 runs (quantum = 2)quantum expired, P2 to the backP3 runs (quantum = 2)P3 finishedP1 again, the queue keeps rotating
# Правило, которое стоит запомнить:
#
#   waiting time    = (момент завершения - приход) - burst
#   turnaround time =  момент завершения - приход
#
# Пример из набора «convoy» (P1=6, P2=4, P3=2, P4=1):
#
#   FCFS: P1[0..6] P2[6..10] P3[10..12] P4[12..13]
#         среднее ожидание = (0 + 5 + 8 + 9) / 4 = 5.5
#
#   SJF : P1[0..6] P4[6..7] P3[7..9] P2[9..13]
#         среднее ожидание = (0 + 3 + 5 + 8) / 4 = 4.0
#
# SJF выигрывает, потому что короткие работы успевают
# пройти раньше, а не стоят за длинной. Это и есть convoy effect.

Práctica

  1. ¿Qué algoritmo puede dejar sin CPU indefinidamente a un trabajo largo si no paran de llegar trabajos cortos?

    Pistas
    • Piensa qué trabajo es adelantado una y otra vez por otros más cortos.
    • Uno de estos algoritmos nunca deja que un trabajo corto nuevo se cuele.

    12 XP

  2. Usa el simulador de abajo para comparar FCFS y SJF con el mismo conjunto de procesos. ¿Cuál da menor tiempo de espera medio y por qué?

    Pistas
    • Ejecuta ambos y compara el tiempo de espera medio que muestra el simulador.
    • Pregúntate si un trabajo largo está retrasando a los cortos que van detrás.

    18 XP

  3. Ordena las decisiones de Round-Robin para P1(4ms), P2(2ms) con un quantum de 2ms.

    Pistas
    • Cada proceso recibe el quantum antes de ser expropiado.
    • Un proceso que termina antes abandona la cola.

    15 XP