Algoritmos de planificación en Sistemas Operativos

La administración del procesador, es la asignación de los procesadores físicos a los procesos, lo que permite que estos últimos realicen trabajo. La planificación se refiere, a cuándo deben asignarse los procesadores y a qué procesos.

Los diferentes estados tienen una relación directa con las denominadas prioridades, que son aquellas que el administrador del sistema, o el propio sistema asignan a cada proceso. De ello va a depender que un proceso se ejecute en más o menos tiempo.

Se pueden establecer prioridades en función de la necesidad de ejecución de algunos programas. Los programas que más se ejecutan, es decir los más necesarios, tendrán prioridad de ejecución sobre aquellos que son menos necesarios y, por tanto, se ejecutan muy de vez en cuando.

Con los algoritmos de planificación conseguimos, en cada momento, decidir que proceso ha de ejecutarse y porque.

  • Tiempo útil (U) o real de ejecución. Es el tiempo de uso de la CPU.
  • Eficiencia (EF), eficacia o utilización. Se expresa como un porcentaje del tiempo medio de utilización, es decir, el porcentaje de tiempo en el que el procesador está ocupado. EF=(U/T)*100%
  • Rendimiento o Productividad (P). Es una medida del número de procesos completados por unidad de tiempo. Indica la cantidad de trabajo que se está llevando a cabo. Si N es el número de procesos completados en S segundos, P= N/S
  • Tiempo de retorno o regreso (R). Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que se completa por el sistema o finaliza. Es la suma del tiempo de ejecución real o útil y el tiempo consumido en la espera por los recursos. R=E+U
  • Tiempo de espera (E). Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida más adecuada de la eficiencia del sistema, ya que se elimina de la medida el tiempo que tarda en ejecutarse él mismo.
  • Tiempo de respuesta. Se denomina así al intervalo de tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de dicho evento, es decir, es el tiempo que se está esperando en el estado de preparado o bloqueado para empezar a ejecutarse.
  • Tiempo de uso de CPU total del proceso (T). El criterio se de selección de un algoritmo se suele basar en la maximización o minimización de una función de los parámetros anteriores. Por ejemplo, maximizar la eficiencia y rendimiento y minimizar el tiempo de espera. Existen distintos algoritmos empleados para realizar la planificación, algunos de ellos son los siguientes:
  • Algoritmo FCFS (First Came First Serve): Primero en llegar primero en ser servido. Da servicio según orden de llegada; es el algoritmo más sencillo y el de menor rendimiento.
  • Algoritmo SJF (Shortest Job First): primera tarea más corta. El trabajo más corto se ejecuta primero. Este algoritmo asigna la CPU al trabajo que requiere menor tiempo de proceso. Si dos trabajos tienen el mismo tiempo se seleccionan según el algoritmo FCFS. La dificultad reside en saber cuál de los dos procesos en espera de ser ejecutados tendrá menor tiempo de proceso, para ello se emplean algoritmos de predicción que calculan el siguiente tiempo de ejecución de un proceso como una media exponencial de los tiempos de las últimas ejecuciones de esa parte de código. El problema que puede presentarse es que vayan entrando a la cola de espera de ejecución los procesos más cortos y los procesos largos que estén esperando, no se ejecuten nunca.
  • Algoritmo RR (Round Robin): Algoritmo de rueda o prioridad circular. A todos los procesos en el estado preparado se les asigna un tiempo de ejecución denominado “cuanto” o “quantum”. El planificador va asignando el procesador a cada tarea de forma secuencial por el quantum de tempo definido. Si un proceso necesita un tiempo de ejecución mayor de su quantum asociado, una vez transcurrido este y si existen más procesos en espera de ejecución, se colocan al final de la lista del estado preparado y el procesador pasa al proceso que queda en cabeza de la lista.
  • Algoritmo por prioridades. Se asocia una prioridad a cada proceso y la CPU se asigna al trabajo con prioridad más alta en cada momento. Normalmente, si se está ejecutando un proceso de prioridad media y entra un proceso de prioridad mayor, se requisa la CPU al primer proceso y se le entrega al proceso de mayor prioridad.

Ejemplo

Sea la siguiente descripción de carga; suponiendo el orden de llegada indicado

Trabajo Tiempo CPU=U Prioridad
1 6 3
2 2 2
3 3 4
4 1 1
5 4 2

Representamos mediante el diagrama de Gantt el acceso a la CPU al aplicar planificación:
– FCFS
– RR (q = 1)
– SFJ
– por prioridad.

En cada caso, calculamos la eficiencia, el tiempo de retorno y de espera de cada trabajo.

– Planificación FCFS

Diagrama de Gantt011

01

– Planificación Robin Round o de rueda

Diagrama de Gantt022– 

rr

– Planificación SFJ

Diagrama de Gantt033

03

– Planificación por prioridad

Diagrama de Gantt044

04

– Resumen con los distintos resultados

resumen

Los mejores resultados son los del algoritmo de SJF, ya que su eficiencia es la mas alta y sus tiempos medios son los más bajos.

Deja un comentario