Planificación del procesador

Clase 2 · Priorizamos y definimos tiempo de uso

¿Cómo cambia la experiencia de los procesos cuando modificamos la regla de selección o el quantum?

Hoy: retomamos FCFS, lo resolvemos con SJF y SRTF, y después experimentamos con Round Robin.

Sistemas Operativos

Priorizar lo breve

Sistemas Operativos

SJF · Elegir la ráfaga más corta

  • Selecciona la menor próxima ráfaga entre los procesos listos.
  • En su versión no apropiativa, no interrumpe la ráfaga actual.
  • Necesita conocer o estimar la duración de las ráfagas.
  • Favorece la finalización temprana de trabajos breves, pero puede postergar trabajos largos.

Volver a decidir con lo que resta

Sistemas Operativos

SRTF · Elegir el menor tiempo restante

  • Es la versión apropiativa de SJF.
  • Reevalúa la elección cuando llega un proceso o cambia el conjunto de listos.
  • Desaloja solo si otro proceso tiene menos CPU restante.
  • Si hay igualdad de restante, se conserva el proceso actual.
  • La comparación usa restante, no la ráfaga original.

Comparar resultados y reconocer límites

Sistemas Operativos

Inanición · Cuando un proceso listo no progresa

  • Un proceso puede permanecer listo y ser postergado repetidamente.
  • Una corriente de trabajos breves puede mantener esperando a uno largo.
  • Una espera grande en una muestra finita no demuestra postergación indefinida.
  • El envejecimiento modifica la prioridad a medida que aumenta la espera.

WA · E3: SJF y SRTF

Equipos de tres · entrega en WA

Usen el caso A de la clase anterior:

Proceso Llegada Ráfaga de CPU
A 0 8
B 1 4
C 2 2
D 3 1

30 minutos !

Cómo registrar una buena predicción

Para cada política, anoten antes de calcular:

  • qué procesos están listos en cada decisión;
  • qué valor compara la política;
  • si el proceso actual puede ser desalojado;
  • qué regla resuelve los empates;
  • qué métrica esperan que mejore y quién podría empeorar.

En SRTF, registren especialmente lo que ocurre cuando llegan B, C y D.

30 minutos !

Repartir la CPU por turnos

Sistemas Operativos

Round Robin · Repartir la CPU por turnos

  • Mantiene una cola FIFO de procesos listos.
  • Cada turno dura como máximo q unidades de tiempo.
  • Si el proceso termina antes, el turno se acorta.
  • Si agota q y continúa, vuelve al final de la cola.
  • El quantum limita una asignación continua, no la CPU total del proceso.

Fronteras del quantum

Cuando dos eventos ocurren en el mismo instante, necesitamos una convención para decidir cuál se procesa primero.

 

En este curso:

 

1. se incorporan primero las llegadas del instante;
2. luego se reencola el proceso que agotó su quantum;
3. los empates restantes se resuelven por llegada y orden de entrada.

 

Esta convención se aplicará en E4 y en el banco de WA.

Quantum, respuesta y coste del cambio

Sistemas Operativos

WA · E4: Round Robin y quantum

Parejas · entrega en WA

Parte A: caso A con Round Robin y q=2.

  • registren la cola en cada frontera relevante;
  • dibujen el Gantt;
  • calculen retorno, espera y respuesta;
  • cuenten cambios directos entre procesos distintos.

Parte B: caso C. A, B y C llegan en t=0 y requieren 5 u.t. cada uno.

Comparen q=1, q=2 y q=5 usando respuesta media, retorno medio, espera media y cambios entre procesos.

Suban la predicción, los cálculos y una explicación de qué mejora y qué empeora. La corrección será posterior.

30 minutos !

El quantum cambia la experiencia

  • Un quantum pequeño puede dar acceso inicial más pronto a quienes esperan.
  • También produce más alternancias entre procesos.
  • Un quantum grande reduce alternancias, pero puede retrasar la primera atención de otros procesos.
  • La conveniencia depende de la carga y de la métrica elegida.

El cambio de contexto tiene coste

Un cambio entre procesos consume tiempo del sistema operativo.

En un modelo estable con turnos completos:

fracción útil aproximada = q / (q + c)

  • q: trabajo útil del turno;
  • c: coste de cambiar de proceso.

La fórmula es una aproximación y no reemplaza el análisis de una traza con llegadas, terminaciones o inactividad.

WA · E5: Coste del cambio

Individual o parejas · entrega en WA

Supongan turnos completos de q ms y un coste de cambio c=0,2 ms.

  1. Calculen la fracción útil para q=1 ms y q=10 ms.
  2. Hallen el menor q entero que alcanza al menos 95 %.
  3. Expliquen por qué un quantum muy grande puede perjudicar la respuesta interactiva.
  4. Expliquen por qué esta fórmula no coincide exactamente con la utilización del caso A.

Entreguen las cuentas y una explicación de los supuestos. La corrección será posterior.

10 minutos !

Elegir política según evidencia

Sistemas Operativos

Comparar sin elegir un ganador universal

Política Puede favorecer Puede perjudicar
SJF Trabajos breves Trabajos largos
SRTF Llegadas breves posteriores Más desalojos y dependencia del restante
Round Robin Primera atención y reparto Más cambios cuando q es pequeño

La comparación solo es válida si se conserva la misma carga, la misma ventana y las mismas convenciones.

Después de entregar · Auto-corrección con el simulador

Tenemos un simulador

  • contrastar el orden de ejecución con su propia traza;
  • revisar las métricas y los promedios;
  • localizar una diferencia y explicar de dónde proviene;
  • formular una pregunta para la corrección posterior.

La salida del programa sirve para revisar el razonamiento; no reemplaza el Gantt ni la explicación entregada en WA.

Simulador · Cómo contrastar una predicción

  1. Abran una terminal en la carpeta que contiene simulador.py.
  2. Consulten las opciones disponibles.
python3 simulador.py --help
python3 simulador.py --caso A --algoritmo SJF
python3 simulador.py --caso A --algoritmo SRTF
python3 simulador.py --caso A --comparar
python3 simulador.py --caso C --algoritmo RR --quantum 1
python3 simulador.py --archivo mis_procesos.csv --comparar

La salida contiene la traza, las métricas por proceso, los promedios, los cambios entre procesos, la utilización y la productividad. En un notebook también pueden usar:

from simulador import simular, CASOS
simular(CASOS["A"], "SRTF")

Para una carga propia, el CSV debe tener las columnas id,llegada,rafaga,prioridad.