6
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA ENERGÍA, LAS INDUSTRIAS Y LOS RECURSOS NATURALES NO RENOVABLES SISTEMAS OPERATIVOS DOCENTE: ING. HERNÁN TORRES ALUMNO: EDGAR MANUEL MACAS TEMA: ALGORITMOS DE PLANIFICACIÓN MODULO: 7mo MÓDULO “B” FECHA: 2011-11-28 LOJA - ECUADOR

Algoritmos de Planificacion

Embed Size (px)

Citation preview

Page 1: Algoritmos de Planificacion

UNIVERSIDAD NACIONAL DE LOJA

ÁREA DE LA ENERGÍA, LAS INDUSTRIAS Y LOS

RECURSOS NATURALES NO RENOVABLES

SISTEMAS OPERATIVOS

DOCENTE:

ING. HERNÁN TORRES

ALUMNO:

EDGAR MANUEL MACAS

TEMA:

ALGORITMOS DE PLANIFICACIÓN

MODULO:

7mo MÓDULO “B”

FECHA:

2011-11-28

LOJA - ECUADOR

Page 2: Algoritmos de Planificacion

ALGORITMOS DE PLANIFICACIÓN

Antes de comenzar a describir los respectivos algoritmos de planificación, es importante conocer

dos conceptos relacionados. Uno de ellos es la función de selección que determina qué proceso,

de entre los listos, se elige para ejecutar a continuación. El otro es el modo de decisión o esquema

de planificación, que especifica los instantes de tiempo en que se aplica la función de selección.

Hay dos categorías generales:

1. Nonpreemptive scheduling (apropiativo) También conocido como cooperative

multitasking. Una vez que el proceso pasa al estado de ejecución, continúa ejecutando

hasta que termina, se bloquean en espera de una E/S o al solicitar algún servicio del

sistema. Esta política de ejecución para terminación fue implementada en los primeros

sistemas de lote (batch).

2. Preemptive scheduling (no apropiativo) Generalmente conocida como política de

planificación por torneo. El proceso que se está ejecutando actualmente puede ser

interrumpido y pasado al estado de listos por el sistema operativo. La decisión de

sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando

se produce una interrupción que lleva a un proceso bloqueado al estado listo o

periódicamente, en función de una interrupción del reloj.

1. Primero en llegar, primero en ser servido (FCFS First come

first served) La lista de procesos en estado listo esta ordenada según el orden de llegada al sistema (creación

del proceso), siendo el más antiguo el que está en la cabecera de dicha lista.

Es una disciplina no apropiativa, por lo tanto al proceso que está activo no se le puede retirar la

CPU hasta que él la abandone voluntariamente.

Inconvenientes:

bajos rendimientos, procesos largos hacen esperar a procesos cortos;

no es útil en sistemas interactivos puesto que no garantiza buenos tiempos de respuesta.

Ventajas:

permite predecir el orden de ejecución de los procesos;

es fácil de implementar.

FCFS, ejemplo:

Page 3: Algoritmos de Planificacion

2. Planificación por Prioridad al más corto (SJF, Short Job First). Es una disciplina no apropiativa. La lista de procesos en estado listo esta ordenada por la cantidad

de tiempo de ejecución estimada, de forma que el proceso más corto es el primero en la cola. Para

establecer este orden se necesita saber el periodo de tiempo de ejecución de un proceso, y como

esto raramente está disponible, se confía en las estimaciones de los usuarios.

Inconvenientes:

con respecto al algoritmo FIFO, es menos predecible los tiempos de respuesta, sobre todo

de los procesos largos;

es poco útil en sistemas interactivos puesto que no garantiza tiempos de respuesta

razonables.

Ventajas:

con respecto al algoritmo FIFO, reduce al mínimo el tiempo promedio de espera de los

trabajos, ya que al favorecer los trabajos cortos sobre los largos reduce el número de

trabajos en espera.

Ej.: Supongamos que en un momento dado existen tres ráfagas listos R1, R2 y R3, sus tiempos de

ejecución respectivos son 24, 3 y 3 ms. El proceso al que pertenece la ráfaga R1 es la que lleva más

tiempo ejecutable, seguido del proceso al que pertenece R2 y del de R3. Veamos el tiempo medio

de finalización (F) de las ráfagas aplicando FIFO y SJF:

FIFO F = (24 + 27 + 30) / 3 = 27 ms.

SJF F = (3 + 6 + 30) / 3 = 13 ms.

3. Planificación del tiempo restante más corto (SRT). Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecución estimado para

completar su ejecución; de esta forma aunque un proceso requiera mucho tiempo de ejecución, a

medida que se va ejecutando iría avanzando en la lista de procesos en estado listo hasta llegar a

ser el primero.

Para realizar esta elección, es necesario actualizar el PCB de los procesos a medida que se le asigna

tiempo de servicio, lo que supone una mayor sobrecarga adicional.

Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a la lista

de procesos en estado listo otro con un tiempo restante de ejecución estimado menor.

4. HRN (Prioridad a la tasa de respuesta más alta) Es una disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se

calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser

atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta terminar. Las prioridades

dinámicas en HRN se calculan de acuerdo con la siguiente expresión:

prioridad = (tiempo de espera + tiempo de servicio) / tiempo de servicio.

Page 4: Algoritmos de Planificacion

Como el tiempo de servicio aparece en el denominador, los procesos cortos tendrán preferencia.

Pero como el tiempo de espera aparece en el numerador, los procesos largos que han esperado

también tendrán un trato favorable. Obsérvese 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.

5. Planificación por el Comportamiento

Con este tipo de planificación se pretende garantizar al usuario cierta prestación 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

número 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 proporción es de 0'5

significa que tan sólo ha consumido la mitad del tiempo prometido pero si es de 2 quiere decir que

ha consumido más de lo debido, justamente el doble.

6. Planificación por Turno Rotatorio (Round Robin).

La principal decisión de diseño que surge con Round Robin es el tamaño del trozo o quantum. Si el

quantum es muy corto, entonces los procesos se moverán a través del sistema rápidamente. Por

otro lado, hay un cierto overhead o desperdicio de tiempo envuelto con el manejo de la

interrupción de reloj y las funciones de planificación y despacho. Por lo tanto quanta muy

pequeños deberían evitarse. Una alternativa es usar un quantum de tiempo que sea un poco más

grande que el tiempo promedio requerido para una interacción típica.

Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se

implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la cola, y

toma el proceso que se encuentra en la cabeza de la cola El desempeño de este algoritmo

dependerá del tamaño del quantum. Si el quantum es infinito entonces degenera en FCFS. Si el

quantum es muy pequeño entonces Round Robin es llamado compartición de CPU y en teoría

pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del

procesador real.

7. Prioridad

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

proceso con mayor prioridad.

Page 5: Algoritmos de Planificacion

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

8. Planificación con colas de niveles múltiples. A cada proceso se le asigna una prioridad.

La lista de procesos en estado listo está formada por una serie de colas circulares, donde cada una

de ellas contiene a todos aquellos procesos que tienen una misma prioridad. La CPU se asigna

siempre al proceso de la cola de mayor prioridad que no esté vacía.

Problema: procesos de baja prioridad quedan

postergados indefinidamente.

Solución: prioridad por envejecimiento. La prioridad

aumenta gradualmente a medida que el proceso

pasa cierto tiempo en el sistema, garantizando su

terminación en un tiempo finito.

9. Planificación con colas de retroalimentación de niveles

múltiples. Su objetivo es tratar a los procesos de acuerdo a su comportamiento:

si el proceso se suspende

frecuentemente se le debe asignar bastantes

veces el procesador con un quantum pequeño;

si el proceso se suspende poco se le

debe asignar el procesador menos veces pero

con un quantum grande.

Page 6: Algoritmos de Planificacion

La lista de procesos en estado listo está formada por varios niveles y cada uno de ellos con una

cola circular.

Cuando se inserta un nuevo proceso este se añade al final de la cola de mayor nivel gestionada de

forma FIFO.

BIBLIOGRAFIA

“Algoritmos de Planificación”,

http://wwwdi.ujaen.es/%7Elina/TemasSO/ALGORITMOSDEPLANIFICACION/6Algoritmosde

PlanificacionI.htm, Fecha consulta [27/11/2011].

Ángela Di Serio , “Algoritmos de planificación de la CPU”,

Http://ldc.usb.ve/%7Espd/Docencia/ci-3821/Tema4/node7.html, Fecha consulta

[27/11/2011].

Malw Dark , “Algoritmo de planificación de proceso”,

http://apuntessis.blogspot.com/2007/12/algoritmos-de-planificacin-de-proceso.html,

Fecha consulta [27/11/2011].