Está en la página 1de 3

2.6 Tcnicas de administracin del planificador.

2.6.1 FIFO Cuando se tiene que elegir a qu proceso asignar la CPU se escoge al que llevara ms tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente. La ventaja de este algoritmo es su fcil implementacin, sin embargo, no es vlido para entornos interactivos ya que un proceso de mucho clculo de CPU hace aumentar el tiempo de espera de los dems procesos. Para implementar el algoritmo (ver figura 2) slo se necesita mantener una cola con los procesos listos ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sita el ltimo de la cola. En a) el proceso P7 ocupa la CPU, los procesos P2, P4 y P8 se mantienen en la lista de preparados. En b) P7 se bloquea (ya sea al realizar una E/S, una operacin WAIT sobre un semforo a cero u otra causa) y P2 pasa a ocupar la CPU. En c) ocurre un evento (finalizacin de la operacin de E/S, operacin SIGNAL, ...) que desbloquea a P7, esto lo vuelve listo, pasando al final de la cola de procesos listos.

Figura 6.Lista de procesos preparados en FIFO. 2.6.2 SJF Al igual que en el algoritmo FIFO las rfagas se ejecutan sin interrupcin, por tanto, slo es til para entornos batch. Su caracterstica es que cuando se activa el planificador, ste elige la rfaga de menor duracin. Es decir, introduce una nocin de prioridad entre rfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecucin de los procesos. La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalizacin promedio, como puede verse en el siguiente ejemplo: Ej: Supongamos que en un momento dado existen tres rfagas listos R1, R2 y R3, sus tiempos de ejecucin respectivos son 24, 3 y 3 ms. El proceso al que pertenece la rfaga R1 es la que lleva ms tiempo ejecutable, seguido del proceso al que

pertenece R2 y del de R3. Veamos el tiempo medio de finalizacin (F) delas rfagas aplicando FIFO y SJF: FIFO F = (24 + 27 + 30) / 3 = 27 ms. SJF F = (3 + 6 + 30) / 3 = 13 ms. Se puede demostrar que este algoritmo es el ptimo. Para ello, consideremos el caso de cuatro rfagas, con tiempos de ejecucin de a, b, c y d. La primera rfaga termina en el tiempo a, la segunda termina en el tiempo a+b, etc. El tiempo promedio de finalizacin es (4a+3b+2c+d)/4. Es evidente que a contribuye ms al promedio que los dems tiempos, por lo que debe ser la rfaga ms corta, b La siguiente, y as sucesivamente. El mismo razonamiento se aplica a un nmero arbitrario de rfagas. 2.6.3 RR Este es uno de los algoritmos ms antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos, muy vlido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum o cunto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum tambin se alterna el uso de la CPU. El round robin es muy fcil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos, como se muestra en la figura 6.2. En esta figura en a) el proceso P7 ocupa la CPU. En b) P7 se bloquea pasando P2a ocupar la CPU. En c) P2 agota su cuantum con lo que pasa al final de la lista yP4 ocupa la CPU. La figura 4 representa un ejemplo ms largo de la ocupacin dela CPU utilizando el algoritmo round robin.

Figura 7. Lista de procesos preparados por RR. 2.6.4 Queves multi-level. Un algoritmo de planificacin mediante 'colas multinivel' divide la cola de procesos preparados en varias colas distintas. Los procesos se asignan permanentemente a una cola, generalmente en funcin de alguna propiedad del proceso, como por ejemplo el tamao memoria, la prioridad del proceso o el tipo de proceso. Cada cola tiene su propio algoritmo de planificacin. Por ejemplo, pueden emplearse colas distintas para los procesos de primer plano y de segundo plano. La cola de

primer plano puede planificarse mediante un algoritmo por turnos, mientras que para la cola de segundo plano puede emplearse un algoritmo FCFS. Si los procesos se pueden clasificar segn sus cualidades, es posible dividir la lista de procesos listos (ready queue) en varias colas (una para cada clasificacin).Los procesos son asignados permanentemente a una de las colas. Cada cola tendr su propio algoritmo de planificacin. Adems, se debe tener una estrategia de planificacin entre las diferentes colas. Por ejemplo, una cola tendr prioridad sobre otra. 2.6.5 Multi-level feedback queves. Se diferencia con el anterior en que procesos pueden cambiar de cola (nivel). Se basa en categorizar los procesos segn el uso de CPU (CPUburst ) que tengan. La cola de mayor prioridad ser la de los procesos I/O-bound y la de menor la de procesos con alto CPU-bound. De esta forma, se garantiza que los procesos con poco uso de procesador tengan mayor prioridad, y los que consumen mucho procesador tendrn baja prioridad. Los procesos, segn el consumo de CPU que hagan, sern promovidos a una cola de mayor prioridad o rebajados a una de menor prioridad. Un planificador Multilevel-Feedback-Queue es definido por: * El nmero de colas. * El algoritmo de planificacin para cada cola. * El mtodo utilizado para promover a un proceso a una cola de mayor prioridad. * El mtodo utilizado para bajar a un proceso a una cola de menor prioridad. * El mtodo utilizado para determinar a qu cola ser asignado un proceso cuando este pronto

También podría gustarte