Tabla de contenido:
- Definición: ¿Qué significa la programación prioritaria?
- Techopedia explica la programación prioritaria
Definición: ¿Qué significa la programación prioritaria?
La programación prioritaria es un método de programación de procesos basado en la prioridad. En este método, el planificador elige las tareas para trabajar según la prioridad, que es diferente de otros tipos de programación, por ejemplo, un simple round robin.
La programación de prioridades implica la asignación de prioridades a cada proceso, y los procesos con prioridades más altas se llevan a cabo primero, mientras que las tareas con prioridades iguales se llevan a cabo por orden de llegada (FCFS) o por turnos. Un ejemplo de algoritmo de programación de prioridad general es el algoritmo de trabajo más corto primero (SJF).
Techopedia explica la programación prioritaria
Las prioridades pueden ser dinámicas o estáticas. Las prioridades estáticas se asignan durante la creación, mientras que las prioridades dinámicas se asignan según el comportamiento de los procesos mientras están en el sistema. Para ilustrar, el planificador podría favorecer las tareas intensivas de entrada / salida (E / S), lo que permite que se emitan solicitudes costosas lo antes posible.
Las prioridades pueden definirse interna o externamente. Las prioridades definidas internamente hacen uso de una cantidad medible para calcular la prioridad de un proceso dado. Por el contrario, las prioridades externas se definen utilizando criterios más allá del sistema operativo (SO), que pueden incluir la importancia del proceso, el tipo y la suma de los recursos que se utilizan para el uso de la computadora, la preferencia del usuario, el comercio y otros factores como la política etc.
La programación de prioridades puede ser una de las siguientes:
- Preventivo: este tipo de programación puede adelantarse a la unidad central de procesamiento (CPU) en el caso de que la prioridad del proceso recién llegado sea mayor que la de los procesos existentes.
- No preventivo: este tipo de algoritmo de programación simplemente coloca el nuevo proceso en la parte superior de la cola lista.
El bloqueo indefinido, también conocido como inanición, es uno de los principales problemas relacionados con los algoritmos de programación prioritarios. Es un estado en el que un proceso está listo para ejecutarse, pero enfrenta una larga espera para ser asignado a la CPU.
A menudo es posible que un algoritmo de programación de prioridad pueda hacer que un proceso de baja prioridad espere indefinidamente. Por ejemplo, en un sistema de carga intensa, si hay una serie de procesos de mayor prioridad, los procesos de baja prioridad nunca pueden obtener la CPU para su ejecución.
Un remedio para el hambre es el envejecimiento, que es una técnica utilizada para aumentar gradualmente la prioridad de aquellos procesos que esperan largos períodos en el sistema.