Una cola por tipo
Un editor y un respaldo no necesitan lo mismo. Al terminar sabrás cómo varias colas atienden a cada uno sin que nadie se quede sin turno.
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.
Colas multinivel
En la práctica, la planificación por prioridades se implementa con varias colas, una por cada nivel de prioridad. Así no hay que reordenar una cola larga cada vez: se elige la primera cola que no esté vacía y, dentro de ella, se reparten turnos con Round Robin.
Lo habitual es separar los procesos por tipo: procesos del sistema, interactivos y en lote (batch). Cada cola puede tener su propio algoritmo y una cola de más prioridad siempre va antes: un proceso en lote solo corre si las colas de arriba están vacías. En la versión más simple, un proceso nunca cambia de cola.
02 · Colas que aprendenColas multinivel con retroalimentación
En las colas multinivel con retroalimentación (multilevel feedback queue), un proceso sí puede moverse entre colas según cómo se comporta:
- Todo proceso nuevo entra en la cola de arriba, la de quantum más corto.
- Si agota su quantum, parece limitado por CPU: baja a la cola siguiente, que tiene un quantum más largo.
- Si suelta la CPU antes porque pide E/S, parece interactivo: se queda arriba.
- Para evitar la inanición, los que esperan mucho abajo pueden subir otra vez. Una forma sencilla es un impulso periódico que devuelve a todos a la cola de arriba ampliación.
Es el algoritmo más flexible, porque se puede configurar para casi cualquier sistema: cuántas colas, qué algoritmo en cada una, cuándo bajar y cuándo subir. Por lo mismo, también es el más difícil de ajustar.
Cinco procesos en las colas. Mueve el tiempo y observa en qué cola está cada uno en cada instante.
Planificación de hilos
En la mayoría de los sistemas lo que el kernel planifica son hilos de kernel. Los hilos de usuario los maneja la biblioteca de hilos y el kernel no sabe que existen. Para ejecutarse, un hilo de usuario debe asociarse a un hilo de kernel, normalmente a través de un proceso ligero (LWP).
- Alcance de proceso (PCS, process contention scope): en los modelos muchos a uno y muchos a muchos, la biblioteca decide qué hilo de usuario recibe un LWP. Los hilos compiten solo con los de su mismo proceso, por lo general según una prioridad. Recibir un LWP no significa correr: después el kernel tiene que planificar ese LWP.
- Alcance de sistema (SCS, system contention scope): el kernel decide qué hilo de kernel usa la CPU, y todos los hilos del sistema compiten entre sí. Es el esquema del modelo uno a uno, el que usan Linux y Windows.
Dos procesos con sus hilos. Elige el alcance y mira quién compite con quién.
Antes de leer la respuesta
La columna Nivel final dice en qué cola terminó cada proceso con retroalimentación: Q0 es la de arriba. En las colas multinivel simples puedes cambiar la cola de cada proceso en la tabla.
Tu turno: colas que aprenden
Cinco procesos: un respaldo que calcula 12 ticks seguidos, tres programas interactivos que alternan ráfagas cortas con E/S (editor, chat, navegador) y un servicio del sistema que llega en t = 4. Con colas multinivel, cada uno vive en su cola: sistema, interactivo o lote. Con retroalimentación, hay tres colas: Q0 con quantum 2, Q1 con quantum 4 y Q2 con FCFS.
Comprueba lo que entendiste
Cada respuesta incorrecta explica por qué parece correcta y en qué falla.