1. Programación de colas de varios niveles (MLQ) :
es bastante difícil tener una sola cola y programar todos los procesos. Aquí es donde se utiliza la programación de colas de varios niveles. En esto, los procesos se dividen en varias clases según la propiedad de los procesos, como el proceso del sistema, el proceso de E/S, etc. Por lo tanto, obtenemos ‘n’ número de colas para n clases de procesos. A cada cola se le asigna una prioridad y puede usar su propio algoritmo de programación, lo que facilita el uso de muchos algoritmos de programación al mismo tiempo. En general, el nivel más alto de la cola tiene la prioridad más alta, que disminuye a medida que avanzamos a niveles más bajos. Si el nivel superior tiene una prioridad absoluta sobre los niveles inferiores, entonces no es preventivo; de lo contrario, si el intervalo de tiempo se divide entre varias colas, se vuelve de naturaleza preventiva.
- Ventajas:
la principal ventaja de este algoritmo es que podemos usar varios algoritmos como FCFS, SJF, LJF, etc. al mismo tiempo en diferentes colas. - Desventajas:
los procesos de nivel más bajo sufren un problema de inanición .
2. Algoritmo de programación de prioridades :
el algoritmo de programación de prioridades ejecuta procesos según su prioridad. A cada proceso se le asigna una prioridad y el proceso con mayor prioridad se ejecuta primero. Las prioridades se pueden definir tanto interna como externamente. Las prioridades internas se deciden por sistema según la cantidad de recursos necesarios, el tiempo necesario, etc., mientras que las prioridades externas se basan en el tiempo en el que se necesita el trabajo o la cantidad que se paga por el trabajo realizado o la importancia del proceso. La programación prioritaria puede ser preventiva o no preventiva.
Nota –
- Si dos procesos tienen la misma prioridad, el empate se rompe usando FCFS.
- El tiempo de espera para el proceso de mayor prioridad siempre es cero en el modo preventivo, mientras que puede no ser cero en el caso del modo no preventivo.
Desventajas:
El principal problema es la inanición o el bloqueo indefinido. Puede suceder que en el flujo de procesos, el sistema siga ejecutando procesos de alta prioridad y los procesos de baja prioridad nunca se ejecuten.
Diferencia entre MLQ y el algoritmo de programación de prioridad:
S. No. | Programación de colas de varios niveles (MLQ) | programación de prioridades |
---|---|---|
1. | Los procesos se ejecutan según la prioridad de ese nivel particular de cola al que pertenece el proceso. La selección adicional de procesos se basa en el tipo de algoritmo utilizado en esa cola en particular. | Ejecuta procesos en función de sus prioridades, es decir, en orden descendente de sus prioridades. Un proceso con mayor prioridad se ejecuta primero. |
2. | Puede ser de naturaleza tanto no preventiva como preventiva dependiendo de las condiciones. | Es tanto de naturaleza preventiva como no preventiva. |
3. | El tiempo de espera promedio y el tiempo de respuesta promedio dependen de los algoritmos utilizados en varios niveles de colas de varios niveles para la programación. | No hay idea del tiempo promedio de espera y el tiempo de respuesta. |
4. | Conduce a la inanición de los procesos en los niveles más bajos de la cola de varios niveles. | El problema del bloqueo de un proceso puede resolverse mediante el envejecimiento, lo que significa aumentar gradualmente la prioridad de un proceso después de un intervalo de tiempo fijo en un número fijo. |
¿Escribir código en un comentario? Utilice ide.geeksforgeeks.org , genere un enlace y compártalo aquí.