La programación de dos niveles es un método de programación eficiente que utiliza dos programadores para realizar la programación de procesos.
Entendámoslo con un ejemplo :
supongamos que un sistema tiene 50 procesos en ejecución, todos con la misma prioridad y la memoria del sistema solo puede contener 10 procesos simultáneamente. Por lo tanto, siempre se intercambian 40 procesos y se escriben en la memoria virtual del disco duro. Para intercambiar e intercambiar en un proceso, se necesitan 50 ms respectivamente.
Retomemos el escenario anterior con una programación directa por turnos: sería necesario intercambiar un proceso (los procesos usados menos recientemente se intercambian) cada vez que se produzca un cambio de contexto. El intercambio de entrada y salida cuesta demasiado, y los intercambios innecesarios hacen perder mucho tiempo al planificador.
Entonces, la solución al problema es la programación de dos niveles . Hay dos programadores diferentes en la programación de dos niveles:
1. Lower level scheduler 2. Higher level scheduler
- Programador de nivel inferior:
este programador selecciona qué proceso se ejecutará desde la memoria. - Programador de nivel superior:
este programador se enfoca en intercambiar los procesos entre el disco duro y la memoria. El intercambio lleva mucho tiempo, por lo tanto, hace su programación con mucha menos frecuencia. También intercambia los procesos que se ejecutan durante mucho tiempo en la memoria y se intercambian con procesos en el disco que no se han ejecutado durante mucho tiempo.
Se utilizan las siguientes variables:
- Tiempo de
respuesta: la variable del tiempo de respuesta es importante, ya que evita el agotamiento de los recursos y se completará un proceso. Algunos otros procesos tendrán que esperar innecesariamente durante mucho tiempo si un proceso se intercambia durante demasiado tiempo. Por lo tanto, esta variable es fundamental. - Tamaño del proceso: los
procesos más grandes se intercambian con menos frecuencia porque tardan mucho tiempo en intercambiarse. Como estos procesos son más grandes, solo algunos de ellos pueden compartir la memoria con el proceso. - Prioridad:
el proceso con mayor prioridad permanece en la memoria durante más tiempo para que se complete más rápido.
Publicación traducida automáticamente
Artículo escrito por nikitadabral30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA