Las colas múltiples son una solución a la problemática que se
presenta cuando en los sistemas operativos coexisten procesos con diferentes necesidades. Por ejemplo: pueden haber procesos interactivos, los cuales requieren una planificación de tiempo compartido adecuada, pero quizás haya que ejecutar también procesos de tiempo real, que no pueden estar sujetos a una expulsión por tiempo.
Por ello si fuera posible identificar en un sistema, clases
diferenciadas de procesos (por ejemplo: tiempo real, interactivos, por lotes, …), se tendría interés en establecer una cola de listos para cada clase de procesos.
La política de planificación se basa en algún esquema
predeterminado, que da un tratamiento especial a los trabajos de cada cola.
Para este algoritmo se requieren dos niveles de planificación:
1. Planificación dentro de cada cola: Cada cola puede utilizar
su propia política de planificación, de acuerdo a la clase de procesos que acoge, la cual puede ser usando diferentes algoritmos (FCFS, Round Robin, etc.). 2. Planificación entre colas: o Se le asigna una prioridad (P) a cada cola.
o Se le asigna un Quantum de CPU a cada cola, que se
reparte entre los procesos de cada cola.
Ejemplo El gráfico muestra las diferentes colas que pueden existir en "Colas Múltiples" (pueden haber menos colas o más colas), por ejemplo la cola para procesos del sistema tiene una prioridad (P) y un quantum de tiempo (Q) en la CPU diferente a las demás. Además las colas pueden estar implementadas con diferentes tipos de algoritmos ya sean con desalojo o sin desalojo. Es válido aclarar que las colas son atendidas en dependencia de su prioridad, por ejemplo:
Para la figura que se muestra, la primera cola en ser atendida
es la cola de Procesos del Sistema, la cual tiene una prioridad (P) de 1, y solo después de haberse ejecutado todos los procesos de dicha cola, es que se atienden las próximas colas en dependencia de la prioridad, en caso de que lleguen nuevos procesos a la cola anteriormente atendida, esta vuelve a ser la de mayor prioridad y se deja de atender la cola presente para volver atender dicha cola.