Ya hemos discutido la programación prioritaria en esta publicación. Es uno de los algoritmos de programación más comunes en los sistemas por lotes. A cada proceso se le asigna una prioridad. El proceso con la prioridad más alta se ejecutará primero y así sucesivamente. Aquí discutiremos un problema importante relacionado con la programación prioritaria y su solución.
Requisitos previos: programación prioritaria
La inanición o bloqueo indefinido es un fenómeno asociado con los algoritmos de programación de prioridad, en el que un proceso listo para la CPU (recursos) puede esperar para ejecutarse indefinidamente debido a la baja prioridad. En un sistema informático muy cargado, un flujo constante de procesos de mayor prioridad puede evitar que un proceso de baja prioridad obtenga la CPU. Ha habido rumores de que en 1967 se utilizó Priority Scheduling en IBM 7094 en el MIT, y encontraron un proceso de baja prioridad que no se había presentado hasta 1973.
Como vemos en el ejemplo anterior, el proceso tiene mayor prioridad que otros procesos que obtienen CPU antes. Podemos pensar en un escenario en el que solo un proceso tiene una prioridad muy baja (por ejemplo, 127) y le estamos dando a otro proceso una prioridad alta, esto puede llevar a esperar indefinidamente el proceso para la CPU que tiene una prioridad baja, esto conduce a la inanición . Además, también hemos discutido sobre la solución del hambre.
Las diferencias entre Deadlock y Starvation en OS son las siguientes:
- El interbloqueo ocurre cuando ninguno de los procesos en el conjunto puede avanzar debido a la ocupación de los recursos requeridos por algún otro proceso, como se muestra en la figura a continuación, por otro lado, la inanición ocurre cuando un proceso espera por un período de tiempo indefinido. para obtener el recurso que requiere.
- Otro nombre para interbloqueo es espera circular . Otro nombre para el hambre es bloqueo vivido .
- Cuando se produce un interbloqueo, ningún proceso puede progresar, mientras que en estado de inanición, aparte del proceso víctima, otros procesos pueden progresar o continuar.
Solución al hambre: el envejecimiento
El envejecimiento es una técnica para aumentar gradualmente la prioridad de los procesos que esperan en el sistema durante mucho tiempo. Por ejemplo, si la prioridad oscila entre 127 (baja) y 0 (alta), podríamos aumentar la prioridad de un proceso en espera en 1 cada 15 minutos. Eventualmente, incluso un proceso con una prioridad inicial de 127 no tomaría más de 32 horas para que el proceso de prioridad 127 envejeciera a un proceso de prioridad 0.
Este artículo es una contribución de Saloni Gupta . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA