Está en la página 1de 18

UNIVERSIDAD MARIANO GLVEZ DE GUATEMALA

SEDE ANTIGUA GUATEMALA


INGENIERA EN SISTEMAS

CURSO: Sistemas Operativos Abiertos


CATEDRTICO: Ing. Marvin Xiloj
SEMESTRE: Sptimo

ALGORITMOS DE PLANIFICACIN

ALUMNOS: Felipe Isa Salazar Prez

1290-07-13831

Erick Oswaldo Prez Aguilar 1290-12-4458

Introduccin
Aqu vamos a centrarnos en analizar los distintos tipos de algoritmos de
planificacin. Estos algoritmos surgen debido a la necesidad de poder organizar
los procesos de una manera eficiente para el procesador.
Los algoritmos de planificacin se encargan de asegurar que un proceso no
monopoliza el procesador. Un proceso es un programa que est en ejecucin.
Este proceso puede estar en 3 estados distintos Listo Bloqueado y En
Ejecucin. Los procesos son almacenados en una lista junto con la informacin
que indica en qu estado est el proceso, el tiempo que ha usado el CPU, etc.

Algoritmos de planificacin
Planificacin de Plazo Fijo

En la planificacin de plazo fijo se programan ciertos trabajos para terminarse en


un tiempo especfico o plazo fijo. Estas tareas pueden tener un gran valor si se
entregan a tiempo, y carecer de l si se entregan despus del plazo. Esta
planificacin es compleja por varios motivos:
El usuario debe informar por adelantado de las necesidades precisas de recursos
del proceso. Semejante informacin rara vez est disponible.
El sistema debe ejecutar el proceso en un plazo fijo sin degradar demasiado
el servicio a los otros usuarios y debe planificar cuidadosamente sus necesidades
de recursos dentro del plazo. Esto puede ser difcil por la llegada de nuevos
procesos que impongan demandas imprevistas al sistema.
Si hay muchas tareas a plazo fijo activas al mismo tiempo, la planificacin puede
ser tan compleja que se necesiten mtodos de optimizacin avanzados para
cumplir los plazos.
La administracin intensiva de recursos requerida por la planificacin de plazo fijo
puede producir un gasto extra substancial.

Planificacin Primero en Entrar-Primero en Salir (FIFO, First In First Out)

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 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.

El esquema FIFO rara vez se usa como esquema principal en los sistemas
actuales, pero a menudo esta incorporado en otros sistemas. Por ejemplo, muchos
esquemas de planificacion despachan los procesos de acuerdo con la prioridad,
pero los procesos con la misma prioridad se despachan de acuerdo con el
esquema
FIFO.
Este es un algoritmo que no usa apropiacion, y que consiste en atender a los
procesos por estricto orden de llegada a la lista de procesos listos. Cada proceso
se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S).
Se trata de una politica muy simple y sencilla de llevar a la practica, pero muy
pobre en cuanto a su comportamiento.
Las caractersticas principales de este algoritmo son las siguientes:

No es apropiativa.

Es justa, aunque los procesos largos hacen esperar mucho a los cortos.

Es una poltica predecible.

El tiempo promedio de servicio es muy variable ya que est en funcin del


nmero de procesos y la duracin promedio que tenga.

EJEMPLO

Proceso Tiempo de
CPU

P1
P2
P3

24
3
3

Media del tiempo de espera:


Caso
1)
(
0
+
24
+
27
)
/
3
=17
Caso
2)
(
6
+
0
+
3
)
/
3
=
3
En este esquema se tienen tres procesos (P1, P2, P3) listos para ejecutarse, con
un tiempo de ejecucin de 24, 3 y 3 unidades de tiempo (para facilidad tomaremos
milisegundos como unidad de tiempo) respectivamente. Los procesos se ejecutan
en ese mismo orden. El primer proceso se ejecuta de inmediato y no espera
nada.
El segundo proceso espera todo lo que dura en ejecutarse el primer proceso que
son 24 milisegundos. Por ltimo el tercer proceso esperara la suma de lo que
duran en ejecutarse los dos procesos anteriores, o sea, 27 segundos. Todo esto
da como resultado un tiempo promedio de espera de 17 milisegundos. Si en
cambio, el orden en que se ejecuten los procesos es como el caso 2), entonces el
proceso P2 se ejecutara de inmediato, P3 esperara lo que tarde en ejecutarse P2
(3 milisegundos) y P1 esperara lo que duran los dos procesos anteriores,
obteniendo un tiempo promedio de espera de 3 milisegundos.
Como puede verse el tiempo promedio de espera que tengan los procesos
depende por completo del orden en que llegan los procesos a ejecutarse.

Planificacin por Turno Rotatorio (Round Robin).

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 cuanto. 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.
En esta figura en a) el proceso P7 ocupa la CPU. En b) P7 se bloquea pasando P2
a ocupar la CPU. En c) P2 agota su cuantum con lo que pasa al final de la lista y
P4 ocupa la CPU. La figura 4 representa un ejemplo ms largo de la ocupacin de
la CPU utilizando el algoritmo round robin.

Este algoritmo presupone la existencia de un reloj en el sistema. Un reloj es un


dispositivo que genera peridicamente interrupciones. Esto es muy importante,
pues garantiza que el sistema operativo (en concreto la rutina de servicio de
interrupcin del reloj) coge el mando de la CPU peridicamente. El cuantum de un
proceso equivale a un nmero fijo de pulsos o ciclos de reloj. Al ocurrir una
interrupcin de reloj que coincide con la agotacin del cuantum se llama
al dispatcher.

Tamao del Quantum o Cuanto


La determinacin del tamao del cuanto es vital para la operacin efectiva de un
sistema de cmputo. Debe el cuanto ser pequeo o grande?, fijo o variable?,
el mismo para todos los usuarios o debe determinarse por separado para cada
uno?
Si el cuanto de tiempo es muy grande, cada proceso tendr el tiempo necesario
para terminar, de manera que el esquema de planificacin por turno rotatorio
degenera en uno de primero-en-entrar-primero-en-salir. Si el cuanto es muy
pequeo, el gasto extra por cambio de proceso se convierte en el factor dominante
y el rendimiento del sistema se degradar hasta el punto en que la mayor parte del
tiempo se invierte en la conmutacin del procesador, con muy poco o ningn
tiempo para ejecutar los programas de los usuarios.
Exactamente dnde, entre cero e infinito, debe fijarse el tamao del cuanto? La
respuesta es, lo bastante grande como para que la mayora de las peticiones
interactivas requieran menos tiempo que la duracin del cuanto.
Pongamos un ejemplo, supongamos que el cambio de proceso tarda 5 mseg., y la
duracin del cuantum es de 20 mseg... Con estos parmetros, se utiliza un mnimo
del 20% del tiempo de la CPU en la ejecucin del sistema operativo. Para
incrementar la utilizacin de la CPU por parte de los procesos de usuario
podramos establecer un cuantum de 500 mseg., el tiempo desperdiciado con este
parmetro sera del 1%. Pero consideremos lo que ocurrira si diez usuarios
interactivos oprimieran la tecla enter casi al mismo tiempo. Diez procesos se
colocaran en la lista de procesos listos. Si la CPU est inactiva, el primero de los
procesos comenzara de inmediato, el segundo comenzara medio segundo
despus, etc. Partiendo de la hiptesis de que todos los procesos agoten
su cuantum, el ltimo proceso deber de esperar 4'5 seg. para poder ejecutarse.
Esperar 4'5 seg. para la ejecucin de una orden sencilla como pwd parece
excesivo.
En conclusin, un cuantum pequeo disminuye el rendimiento de la CPU, mientras
que un cuantum muy largo empobrece los tiempos de respuesta y degenera en el
algoritmo FIFO. La solucin es adoptar un trmino medio como 100 mseg.

Planificacin por Prioridad al ms corto (SJF, Short Job First).

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:
Ejemplo: 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) de
las 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.
No obstante, este algoritmo slo es ptimo cuando se tienen simultneamente
todas las rfagas. Como contraejemplo, considrense cinco rfagas desde A hasta
E, con tiempo se ejecucin de 2, 4, 1, 1 y 1 respectivamente. Sus tiempos de
llegada son 0, 0, 3, 3 y 3. Primero se dispone de A y B, puesto que las dems
rfagas no han llegado an. Con el algoritmo SJF las ejecutaramos en orden A, B,
C, D, y E con un tiempo de finalizacin promedio de 4.6. Sin embargo, al
ejecutarlas en orden B, C, D, E y A se tiene un promedio de finalizacin de 4.4.

Planificacin por Prioridad al Tiempo Restante ms Corto (SRTF, Short


Remaining Time First).

Es similar al anterior, con la diferencia de que si un nuevo proceso pasa a listo se


activa el dispatcher para ver si es ms corto que lo que queda por ejecutar del
proceso en ejecucin. Si es as el proceso en ejecucin pasa a listo y su tiempo de
estimacin se decrementa con el tiempo que ha estado ejecutndose.

En la figura 6.5 tenemos un ejemplo de funcionamiento del algoritmo en el que se


observa cmo se penalizan las rfagas largas (como en SJF). Un punto dbil de
este algoritmo se evidencia cuando una rfaga muy corta suspende a otra un poco
ms larga, siendo ms largo la ejecucin en este orden al ser preciso un cambio
adicional de proceso y la ejecucin del cdigo del planificador.

Planificacin a la Tasa de Respuesta ms Alta


Brinch Hansen desarroll la estrategia de prioridad a la tasa de respuesta ms alta
(HRN, highest-response-ratio-next) que corrige algunas deficiencias de SJF,
particularmente el retraso excesivo de trabajos largos y el favoritismo excesivo
para los trabajos cortos. HRN es un disciplina de planificacin no apropiativa en la
cual la prioridad de cada proceso no slo se calcula en funcin del tiempo de
servicio, sino tambin del tiempo que ha esperado para ser atendido. Cuando un
trabajo obtiene el procesador, se ejecuta hasta terminar. Las prioridades dinmicas
en HRN se calculan de acuerdo con la siguiente expresin:
Prioridad = (tiempo de espera + tiempo de servicio) / tiempo de servicio
Como el tiempo de servicio aparece en el denominador, los procesos cortos
tendrn preferencia. Pero como el tiempo de espera aparece en el numerador, los
procesos largos que han esperado tambin tendrn un trato favorable. Obsrvese
que la suma tiempo de espera + tiempo de servicio es el tiempo de respuesta del
sistema para el proceso si ste se inicia de inmediato.

Planificacin por el Comportamiento

Con este tipo de planificacin se pretende garantizar al usuario cierta prestacin


del sistema y tratar de cumplirla. Si en un sistema tenemos 'n' usuarios lo normal
ser garantizar a cada uno de ellos al menos 1/n de la potencia del procesador.
Para ello necesitamos del tiempo consumido por el procesador y el tiempo que
lleva el proceso en el sistema. La cantidad de procesador que tiene derecho a
consumir el proceso ser el cociente entre el tiempo que lleva en el sistema entre
el nmero de procesos que hay en el sistema. A esa cantidad se le puede asociar
una prioridad que vendr dada como el cociente entre tiempo de procesador que
ha consumido y el tiempo que se le prometi (el tiempo que tiene derecho a
consumir). De tal modo que si esa proporcin es de 0'5 significa que tan slo ha
consumido la mitad del tiempo prometido pero si es de 2 quiere decir que ha
consumido ms de lo debido, justamente el doble.
En sistemas de tiempo real se puede adoptar una variante de este algoritmo en el
que se otorgue mayor prioridad al proceso cuyo riesgo de no cumplir el plazo sea
mayor.

Colas de Retroalimentacin de Mltiples Niveles


Cuando un proceso obtiene la CPU, sobre todo cuando todava no ha tenido
oportunidad de establecer un patrn de comportamiento, el planificador no tiene
idea de la cantidad de tiempo de CPU que necesitar el proceso. Los procesos
limitados por la E/S normalmente usan la CPU slo un momento antes de generar
una solicitud de E/S; los procesos limitados por la CPU pueden usar el procesador
durante horas si est disponible en forma no apropiativa.
Un mecanismo de planificacin debe:
Favorecer a los trabajos cortos.
Favorecer a los trabajos limitados por la E/S para
lograr un mejor aprovechamiento de los dispositivos de
E/S.
Determinar la naturaleza de un trabajo lo ms pronto
posible y planificarlo de acuerdo con su naturaleza.

Las colas de retroalimentacin de niveles mltiples (figura 6.6) ofrecen una


estructura que cumple con estos objetivos. Un proceso nuevo entra en la red
de colas al final de la primera cola. Se desplaza en esa cola mediante Round
Robin hasta que obtiene la CPU. Si el trabajo termina o cede la CPU para esperar
la terminacin de una operacin de E/S o de algn evento, el trabajo abandona la
red de colas. Si el cuanto expira antes de que el proceso ceda voluntariamente la
CPU, el proceso se colocar al final de la cola del siguiente nivel. El proceso ser
atendido otra vez cuando llegue a la cabeza de esa cola si est vaca la primera.
Mientras el proceso utilice todo el cuanto proporcionado en cada nivel, continuar
desplazndose al final de la siguiente cola inferior. Por lo general, existe una cola
en el nivel ms bajo en la cual el proceso circula por turno rotatorio hasta que
termina.
En muchos esquemas de retroalimentacin de mltiples niveles, el cuanto
asignado a un proceso cuando pasa a una cola de nivel inferior alcanza un valor
mayor. De esta forma, cuanto ms tiempo se encuentre un proceso en la red de
colas ms grande ser el cuanto asignado cada vez que obtenga la CPU, pero tal
vez no obtenga la CPU muy a menudo, porque los procesos de las colas de nivel
superior tienen mayor prioridad. Un proceso situado en una cola no puede
ejecutarse a menos que estn vacas las colas de nivel superior. Un proceso en
ejecucin ser desposedo por un proceso que llegue a una cola superior.
Considrese ahora cmo responde un mecanismo de este tipo a diferentes tipos
de procesos. El mecanismo debe favorecer a los procesos limitados por la E/S
para lograr un buen aprovechamiento de los dispositivos y una respuesta buena
para los usuarios interactivos; y de hecho lo hace porque los procesos limitados
por la E/S entrarn en la red con prioridad alta y se les asignar rpidamente la

CPU. El tamao del cuanto de la primera cola se elegir lo suficientemente grande


para que la gran mayora de los trabajos limitados por la E/S generen una peticin
de E/S antes de que expire el primer cuanto. Cuando el proceso solicita E/S,
abandona la red y ha obtenido un tratamiento favorable, tal como se deseaba.
Ahora considrese una tarea limitada por la CPU que necesita mucho tiempo de
procesador. Esa tarea entra en la cola ms alta de la red con prioridad alta. Recibe
rpidamente su primera asignacin de la CPU, pero su cuanto expira y el proceso
se coloca en la cola del siguiente nivel inferior. En ese momento, el proceso tiene
una prioridad menor que la de los procesos que llegan al sistema, en particular los
trabajos limitados por la E/S, que obtienen primero la CPU. El proceso limitado por
la CPU acaba recibiendo sta, obtiene un cuanto mayor que en la cola ms alta y
vuelve a utilizar la totalidad de su cuanto. Luego es situado al final de la siguiente
cola inferior. El proceso sigue desplazndose a colas inferiores, espera ms entre
divisiones de tiempo y utiliza todo su cuanto cada vez que obtiene la CPU ( a
menos que sea arrebatada por un proceso entrante). En algn momento, el
proceso limitado por la CPU llega a la cola de nivel inferior, en donde entrar en
una planificacin por turno hasta terminar.

Las colas de retroalimentacin de niveles mltiples son ideales para separar


procesos en categoras basadas en su necesidad de la CPU. En un sistema de
tiempo compartido, cada vez que un proceso abandona la red de colas puede
"marcarse" con la identidad de la ltima cola en donde estuvo, y cuando el
proceso entra de nuevo en la red de colas, puede enviarse directamente a la cola
en la cual termin su operacin por ltima vez. En este caso, el planificador est
usando un razonamiento heurstico, segn el cual el comportamiento anterior del
proceso es un buen indicador de su comportamiento en un futuro inmediato. De
esta forma, un proceso limitado por la CPU que regresa a la red de colas no se
coloca en las colas de nivel alto donde interferira con el servicio a los procesos
cortos de prioridad alta o con los limitados por la E/S.
Si los procesos se colocan siempre dentro de la red en la cola que ocuparon la
ltima vez, ser imposible que el sistema responda a cambios de un proceso, por
ejemplo, de estar limitado por la CPU, a estar limitado por la E/S. El problema
puede resolverse marcando al proceso tambin con su duracin dentro de la red la
ltima vez que estuvo en ella. As, cuando el proceso entra de nuevo en la red
puede colocarse en la cola correcta. Entonces, si el proceso entra en una fase
nueva en la cual deja de estar limitado por la CPU y empieza a estar limitado por
la E/S, el proceso experimentar en principio un tratamiento lento mientras el

sistema determina que la naturaleza del proceso est cambiando. Pero el


mecanismo de planificacin responder con rapidez a este cambio. Otra forma de
hacer que el sistema responda a los cambios de comportamiento de los procesos
es permitir que un proceso ascienda un nivel en la red de colas cada vez que
abandona voluntariamente la CPU antes de que expire su cuanto.
El mecanismo de colas de retroalimentacin de niveles mltiples es un buen
ejemplo de mecanismo adaptativo, que responde a los cambios en el
comportamiento del sistema que controla. Los mecanismos adaptativos implican,
en general, una carga extra mayor que los no adaptativos, pero la sensibilidad
ante los cambios en el sistema da como resultado una mejor capacidad de
respuesta, y justifica el aumento en el gasto extra.
Una variante comn del mecanismo de colas de retroalimentacin de mltiples
niveles consiste en hacer que un proceso circule por turno varias veces en cada
cola antes de pasar a la siguiente cola inferior. El nmero de ciclos en cada cola
crece por lo regular cuando el proceso pasa a la siguiente cola inferior.

CONCLUSIONES

Como ya se ha mencionado ms de alguna vez durante el desarrollo de este informe, la


planificacin de la CPU es la tarea de escoger un proceso que espera en la cola de
procesos listos y asignarle la CPU. En este momento, el despachador (despatcher) se
encarga
de
asignar
la
CPU
al
proceso
seleccionado.
Se ha analizado tambin, que el proceso de seleccin de un algoritmo de planificacin no
es una tarea trivial, ms bien es compleja, ya que requiere tener una serie de conceptos
muy claros, y definir muy bien cul es la funcin que el sistema operativo realizar. Para
ayudar al desarrollo de esta actividad, se han establecido un conjunto de criterios que
deben
ser
reconocidos
a
la
hora
de
la
seleccin.
Un comentario importante, es que los diferentes algoritmos no son excluyentes entre s en
un sistema operativo, de all, que surjan soluciones como la planificacin de colas
multinivel explicada antes. Adems, la amplia variedad de algoritmos de planificacin
disponibles
exige
tener
mtodos
para
seleccionar
el
ms
apropiado.
Para apoyar lo anterior, existen tambin mtodos analticos que utilizan anlisis
matemtico para determinar el desempeo de un algoritmo. Los mtodos de simulacin
determinan el desempeo imitando el algoritmo de planificacin aplicndolo a una
muestra "representativa" de procesos, y calculando el desempeo resultante.
Por ltimo, es muy importante reconocer que no siempre la planificacin minimizar los
ndices de desempeo, pues, a veces se requerir maximizar el uso de los recursos para
aumentar el desempeo del sistema operativo, o minimizar el tiempo de respuesta para
darle un mejor servicio al usuario.

BIBLIOGRAFIA
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/PLANIFICACI
ONDEPROCESOS/6AlgoritmosdePlanificacionI.htm
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/PLANIFICACI
ONDEPROCESOS/6AlgoritmosdePlanificacionII.htm#planificacion_colas_Retro_M
ultiple

También podría gustarte