Algoritmos de planificación Un sistema operativo tiene muchos planificadores, hay 2 planificadores de la CPU principales: Planificador a largo plazo o planificador de trabajos, determina cuales son los trabajos que se admiten en el sistema para su procesamiento. procesamiento. Planificador a corto plazo o planificador de la CPU selecciona entre los trabajos en memoria cuales están dispuestos para su ejecución y asigna la CPU a uno de ellos. La distinción básica entre entre estos dos planificadores es la frecuencia frecuencia de su ejecución. El planificador a corto plazo tiene que seleccionar un nuevo proceso para la CPU con mucha frecuencia. frecuenc ia. Con frecuencia el planificador a corto plazo se ejecuta al menos una vez cada diez milisegundos.
Los planificadores anteriores seleccionan un proceso aplicando un determinado algoritmo. Dicho algoritmo puede ser:
No apropiativo : un proceso no puede apropiarse de un recurso que ha sido asignado a otro
proceso.
Apropiativo : un proceso más prioritario, puede apropiarse de un recurso asignado a otro
proceso menos prioritario.
Los principales criterios que se emplean para compararlos algoritmos de planificación son los siguientes: Utilización de la CPU. Dado que la CPU es muy cara debemos mantenerla tan ocupada como posible.
Productividad: Número de trabajos que se completan por unidad de tiempo. La productividad de la CPU se puede calcular mediante el ratio que es el tanto por uno de la siguiente forma: PRODUCTIVIDADE DA CPU = % UTILIZ. CPU = T. EJEC. / T. R r (RATIO) = PRODUCTIVIDADE
Tiempo de retorno : Desde el `punto de vista de un trabajo determinado, el criterio más
importante es el tiempo que se tarda en ejecutar ese trabajo. El tiempo tiempo desde la entrega a la terminación es el tiempo tiempo de retorno. El tiempo de retorno es la suma de los periodos de tiempo de espera para entrar en memoria, la espera en la cola de preparados, la ejecución en la CPU y la realización de la E/S. T (TIEMPO DE RETORNO) = INST. FINAL. – INST. LLEGADA Tiempo de espera : Un algoritmo afecta únicamente a la cantidad de tiempo que un trabajo invierte en esperar en la cola de preparados. E (TIEMPO DE ESPERA) = TIEMPO DE RETORNO – TIEMPO DE EJECUCIÓN Tiempo de respuesta : Mide el tiempo que pasa desde que envía una solicitud hasta que se produce la primera respuesta. Esta medida es la cantidad de tiempo que se tarde en iniciar la respuesta, pero no el tiempo que lleva emitir la respuesta.
Para el estudio de los algoritmos de planificación consideramos nuestros procesos como una ráfaga de CPU sin tene en cuenta las veces que realice E/S. NOTA: NOTA: Estudiamos los siguientes algoritmos aplicándolos al planificador de CPU.
1
1. Algoritmo FCFS servido)
(First Come, First Served
1º en llegar, 1º en ser
Bajo FCFS, el procesador ejecuta cada proceso hasta que termina. Los procesos que entren en la cola de procesos preparados mientras otro esté haciendo uso del procesador esperarán en la cola en el orden en que lleguen. Este método también se conoce con el nombre de “”Primero en llegar, primero en salir” (FIFO). Cola de procesos preparados E
C
D
B
Fin de la ejecución
CPU
A
El planificador de CPU favorece con este algoritmo a los procesos orientados a CPU (tienen operaciones de CPU largas, y acaparan la CPU hasta finalizar su operación). Ventaja: Es muy fácil de implementar. Inconveniente: El rendimiento suele ser bajo. A continuación se muestra un ejemplo gráfico del funcionamiento del algoritmo FCFS suponiendo una cola con 5 procesos listos:
Proceso
Instante de llegada
Tiempo de ejecución (unidades de tiempo)
Instante finalización
A
0
3
3
B
1
5
8
C
4
2
10
D
5
6
16
E
8
4
20
E D
C B A
Procesador q=1 A 0
1
B 2
3
4
5
D
C 6
7
8
9
10
11
12
13
E 14
15
16
17 18 19 20
Unidades de tiempo
Podemos observar que el índice de servicio mejora conforme son más largos los procesos, es decir, se está penalizando a los procesos cortos, fundamentalmente a aquellos que entren en el sistema después de los largos. Cualquier proceso corto en la cola inmediatamente después de uno largo sufrirá un tiempo de espera mucho más largo que el tiempo que necesitaría para ejecutarse.
2. Algoritmo RR (Round Robin) Este algoritmo cuya traducción en español podría ser asignación cíclica o planificación en rueda es una política que trata de ser más justa en cuanto a los procesos cortos como con los largos. 2
Es un algoritmo apropiativo que asigna un determinado quantum o tiempo de atención de CPU a los procesos listos. Transcurrido ese tiempo, si el proceso no ha terminado, se le devuelve al final de la cola de procesos listos, concediéndose otro quantum al siguiente proceso de la cola. En este algoritmo, un proceso en ejecución puede abandonar la CPU por 3 motivos: Finaliza su ejecución. Necesita realizar una operación de E/S, pasando a la cola del dispositivo correspondiente. Finaliza su tiempo de CPU, pasando al final de la cola de procesos listos. El siguiente proceso se apropia de la CPU.
Cola de dispositivo
Cola de procesos preparados A
C
B
A
Fin de la ejec. CPU
Favorece los procesos orientados a E/S. Los procesos con muchas y largas operaciones de CPU serán muchas veces realimentados. Una cuestión a resolver en este algoritmo es la determinación de la duración del quantum de tiempo, ya que un quantum muy pequeño provoca muchos cambios de contexto que requieren perder mucho tiempo; un quantum de tiempo muy grande convierte el algoritmo en un FCFS, aumentando el tiempo de respuesta de los procesos. Ventaja: Mejora el tiempo de respuesta de los procesos cortos. Inconveniente: El tiempo necesario para realizar el cambio de contexto y la inicialización del temporizador cuando finaliza un quantum de tiempo. Para el ejemplo anterior, este algoritmo sería gráficamente como sigue, suponiendo un quantum de 1 unidad de tiempo
Proceso
Instante de llegada
T. de ejecución
Instante finalización
T
E
r
A
0
3
5
5
2
0,60
B
1
5
13
12
7
0,42
C
4
2
9
5
3
0,40
D
5
6
20
15
9
0,40
E
8
4
18
10
6
0,40
9,4
5.4
0,44
Media
E
D C B B
A
A
B
A
B
A
C
B
D
C
B
E
Procesador
D
B
E
D
E
D
E
D
D
q=1
3
0
1
2
3
4
5
6
7
8
9
10
11 12
13
14 15 16 17 18
19
20
Unidades de tiempo
3. SJF (Shortest Job First) El siguiente proceso el más corto. Da prioridad a la tarea más corta. No es expropiativo. Es necesario conocer el tiempo que le queda a cada trabajo para terminar su ejecución. Esta política escoge de la cola de procesos preparados el que necesite menos tiempo de ejecución para realizar su trabajo., Para ello necesitará conocer el tiempo que necesita el procesador cada momento. Si 2 procesos tuviesen la m isma ráfaga de CPU se usa el FCFS. Veamos como se ejecutaría los procesos que tomamos como ejemeplo:
4. SRT (Shortest Remaining Time) Proximo proceso, el de tiempo restante más corto. Este algoritmo cambia el proceso que está en ejecución cuando se activa un proceso con una exikgencia de tiempo total a menor que el que le queda al proceso en curso.
4
5
5. Colas multinivel con Realimentación.
6
7
8