Algoritmo de planificación de Procesos por Prioridad

3
Algoritmo de planificación por prioridad En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel proceso con mayor prioridad. Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso entonces se deberá seguir alguna política de selección. Un problema que presenta un esquema de planificación por prioridades puro es que los procesos con la prioridad más baja pueden sufrir de inanición o bloqueo indefinido. Un proceso que está listo para correr pero espera porque siempre hay procesos con prioridad más alta. Para evitar este problema, se puede ir incrementando gradualmente la prioridad de los procesos (envejecimiento). SJF es un caso especial de planificación por prioridad, donde la prioridad es el inverso del valor estimado del próximo ciclo de CPU (a menor ciclo, mayor prioridad). Ejemplo: Sea la siguiente descripción de carga: Trabajo Ráfaga CPU Prioridad A 8 2 B 4 1 C 9 4 D 5 2 Suponer el orden de llegada el indicado. Calcular tiempo de espera y tiempo de retorno de cada trabajo, tiempo medio de espera y retorno, cuando la planificación se realiza mediante el algoritmo de prioridades y del tipo no apropiativo.

Transcript of Algoritmo de planificación de Procesos por Prioridad

Page 1: Algoritmo de planificación de Procesos por Prioridad

Algoritmo de planificación por prioridad

En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador

escogerá aquel proceso con mayor prioridad.

Cuando un proceso debe ser seleccionado, el planificador por prioridades

seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso

entonces se deberá seguir alguna política de selección.

Un problema que presenta un esquema de planificación por prioridades puro es que

los procesos con la prioridad más baja pueden sufrir de inanición o bloqueo

indefinido. Un proceso que está listo para correr pero espera porque siempre hay

procesos con prioridad más alta.

Para evitar este problema, se puede ir incrementando gradualmente la prioridad de

los procesos (envejecimiento).

SJF es un caso especial de planificación por prioridad, donde la prioridad es el inverso

del valor estimado del próximo ciclo de CPU (a menor ciclo, mayor prioridad).

Ejemplo:

Sea la siguiente descripción de carga:

Trabajo Ráfaga CPU Prioridad

A 8 2

B 4 1

C 9 4

D 5 2

Suponer el orden de llegada el indicado.

Calcular tiempo de espera y tiempo de retorno de cada trabajo, tiempo medio de espera y retorno, cuando la planificación se realiza mediante el algoritmo de prioridades y del tipo no apropiativo.

Page 2: Algoritmo de planificación de Procesos por Prioridad

SOLUCIÓN:

Este algoritmo puede ser apropiativo y no apropiativo. En el caso de apropiativo, cuando un proceso llega a la cola de procesos listos, su prioridad es comparada con la prioridad del proceso que está corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende al nuevo proceso. Planificación de colas múltiples con prioridades

Mediante este algoritmo de planificación (ver figura) se le asigna a cada proceso una

prioridad que deberá coincidir con alguna de las prioridades asignadas a las colas de

procesos listos. Cuando un proceso entre en el sistema se dirigirá a la cola que le

corresponda, no pudiendo cambiar de cola de procesos listos mientras esté en el

sistema, al contrario que la planificación con realimentación.

El planificador seleccionará el proceso que tenga mayor prioridad, esto es, el proceso

que se encuentre en la cola de mayor prioridad, y dentro de cada cola se seleccionará

el proceso de acuerdo a la política de planificación específica a dicha cola.

Proceso Tiempo

de lleg.

Priorid

ad

Tiempo de

Servicio

Tiempo de

Comienzo

Tiempo de

Finalización

Turnaround Tiempo de

Espera

A 0 2 8 0 8 8 0

B 1 1 4 22 26 26-1=25 22-1=21

C 2 4 9 8 17 17-2=15 8-2= 6

D 3 2 5 17 22 22-3=19 17-3=14

Promedio 16.75 10.25

Page 3: Algoritmo de planificación de Procesos por Prioridad

Un problema que presentan estos algoritmos de planificación es que los procesos de prioridad más baja pueden sufrir de inanición. Este problema ocurre, como era de esperar, si hay un flujo continuo de procesos listos de alta prioridad. Para superar este problema, se puede pensar en diseñar un método que pueda cambiar la prioridad del proceso en función de su edad, esto es, aumentar la prioridad por envejecimiento.