En este algoritmo a cada proceso se le
asocia un número entero de prioridad. Mientras menor sea este entero pues mayor
prioridad tiene el proceso, por lo que la esencia del algoritmo es planificar
la entrada de procesos a la CPU de acuerdo a la prioridad asociada de cada uno
de ellos.
Un caso particular del algoritmo por
prioridad es el SJF, donde el valor del próximo ciclo de CPU representa la
prioridad. El algoritmo por prioridad corrige algunas deficiencias del SJF,
particularmente el retraso excesivo de procesos largos y el favoritismo por
procesos cortos.
Características.
Las ideas centrales son que cada
proceso tiene asociada una prioridad y que el proceso ejecutable con máxima
prioridad es el que tiene el permiso de ejecución.
Los procesos de alta prioridad
podrían ejecutar indefinidamente, ya que el planificador del sistema puede
disminuir la prioridad del proceso en ejecución en cada interrupción del reloj.
Las prioridades también pueden ser
asignadas dinámicamente por el sistema para lograr ciertas metas relacionadas
con el procesador o la Entrada / Salida.
Los procesos limitados por la
Entrada / Salida (requerimientos intensivos de Entrada / Salida) ocupan mucho
de su tiempo en espera de operaciones de Entrada / Salida, por lo tanto:
Deben tener prioridad para usar la
cpu y efectuar la siguiente petición de Entrada / Salida, ya que se ejecutará
(la operación de Entrada / Salida) en paralelo con otro proceso que utilice la
cpu.
Si deben esperar mucho tiempo a la
cpu estarán ocupando memoria por un tiempo innecesario.
En caso de empate se aplica el
FIFO primero en llegar primero en salir.
Funcionamiento.
Un algoritmo sencillo consiste en
establecer que la prioridad sea “1 / f”, donde “f” es la fracción del último
cuanto utilizado por el proceso.
Un proceso que utilice 2 mseg (dos
milisegundos) de su cuanto de 100 mseg (cien milisegundos) tendrá prioridad 50
(cincuenta).
Un proceso que se ejecutó 50 mseg
antes del bloqueo tendrá prioridad 2.
Un proceso que utilizó todo el
cuanto tendrá prioridad 1.
Frecuentemente los procesos se
agrupan en “Clases de Prioridad”, en cuyo caso se utiliza la Planificación con
Prioridades entre las clases y con Round Robin (RR) dentro de cada clase. Si
las prioridades no se reajustan en algún momento, los procesos de las clases de
prioridad mínima podrían demorarse indefinidamente.
Gabriel Renan Lasso Lara