Planificación a plazo fijo.
En la planificación a plazo fijo, ciertos trabajos se
planifican para ser terminados en un periodo específico. Estos trabajos tienen
un alto valor si se entregan a tiempo y pueden carecer de valor si se
entregan después del límite. La planificación a plazo fijo es compleja por
muchas razones:
* Los usuarios deben proporcionar por adelantado y en forma
precisa las necesidades de recursos de su trabajo. Tal
información rara vez está disponible.
* El sistema debe ejecutar el programa de plazo fijo sin una
severa degradación de servicio para los otros usuarios.
* El sistema debe planificar cuidadosamente las necesidades
de recursos permitiendo un libre tránsito del plazo fijo. Esto puede ser
difícil debido a la llegada de programas nuevos con demandas impredecibles.
* Si se activan muchos trabajos de plazo fijo, la
planificación puede llegar a ser tan compleja que necesite métodos de
optimización sofisticados para asegurar que el plazo fijo se cumpla.
* El manejo intenso de recursos requeridos por la
planificación de plazo fijo puede generar una sobrecarga sustancial.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_417.html
2.12.1 FIFO
Planificación Primero en llegar -
Primero en Salir (FIFO).
Es la disciplina más simple, figura # 42. Los
procedimientos son despachados de acuerdo al orden de llegada a la cola de
listos. Una vez que un proceso tiene el CPU, se ejecuta hasta su terminación.
Esta planificación es No apropiativa; es justa en el sentido formal, pero algo
injusta porque los grandes procesos hacen esperar a trabajos pequeños y,
los trabajos sin importancia hacen esperar a los trabajos importantes.
Figura # 42. Planificación primero en llegar primero en
salir.
La Planificación FIFO ofrece una varianza en tiempo de
respuesta relativamente pequeña y es, por tanto, más predecible que otros
esquemas; no es un esquema útil en la planificación de procesos interactivos
porque no garantiza buenos tiempos de respuesta.
FIFO (Firs In First Out).-
Asocia a cada página el tiempo en que fue cargada en memoria.
Cuando debe reemplazar una página, se selecciona la que hace mas tiempo que
esta en memoria. También se puede implementar mediante la utilización de una
lista. Se reemplazan las páginas de la cabeza y se agregan al final.
Planificación del Primero en Entrar Primero en Salir
(FIFO)
Es muy simple, los procesos se despachan de acuerdo con su
tiempo de llegada a la cola de listos.
Una vez que el proceso obtiene la cpu, se ejecuta hasta
terminar, ya que es una disciplina “no apropiativa”.
Puede ocasionar que procesos largos hagan esperar a procesos
cortos y que procesos no importantes hagan esperar a procesos
importantes.
Es más predecible que otros esquemas.
No puede garantizar buenos tiempos de respuesta
interactivos.
Suele utilizarse integrado a otros esquemas, por ejemplo, de
la siguiente manera:
• Los procesos se despachan con algún esquema de
prioridad.
• Los procesos con igual prioridad se despachan “FIFO”.
SCHED_FIFO: Planificación FIFO (1º en entrar, 1º en salir).
SCHED_FIFO sólo puede emplearse con prioridades estáticas
mayores que 0, lo que significa que cuando un proceso SCHED_FIFO se convierte
en ejecutable, siempre prevalecerá inmediatamente sobre cualquier otro proceso
normal SCHED_OTHER ejecutándose. SCHED_FIFO es un simple algoritmo de
planificación sin rodajas de tiempo. Para procesos planificados bajo la
política SCHED_FIFO, se aplican las siguientes reglas: Un proceso SCHED_FIFO
que ha sido apropiado por otro proceso de mayor prioridad permanecerá en la
cabeza de la lista para su prioridad y reanudará su ejecución tan pronto como
todos los procesos de prioridad más alta se bloqueen de nuevo. Cuando un
proceso SCHED_FIFO llegue a ser ejecutable, se insertará al final de la lista
para su prioridad. Una llamada a sched_setscheduler o a sched_setparam pondrá
el proceso SCHED_FIFO identificado por pid al final de la lista si era
ejecutable. Un proceso que llame a sched_yield será colocado al final de la lista.
Ningún otro suceso moverá un proceso planificado bajo la política SCHED_FIFO en
la lista de espera de procesos ejecutables con igual prioridad estática. Un
proceso SCHED_FIFO se ejecuta hasta que es bloqueado por una petición de E/S,
hasta que sea apropiado por un proceso de más alta prioridad, o hasta que llame
a sched_yield.
http://www.hispafuentes.com/hf-doc/man/man2/sched_setscheduler.2.html
2.12.2 SJF
Planificación del trabajo más corto (SJF).
La disciplina del trabajo más corto primero es NO apropiativa
y en ella el trabajo o proceso con tiempo estimado de ejecución hasta
terminación más corto, es el siguiente en ser ejecutado. El SJF reduce el
tiempo de espera de los procesos, sin embargo, tiene una varianza mayor (es
decir, es menos predecible) que en FIFO, sobre todo para los trabajos largos.
SJF favorece a los procesos cortos a costa de los
procesos largos. Además, selecciona los trabajos que serán atendidos y que
dejarán el sistema lo antes posible. Esto último traduce en listas de espera
cortas. El SJF es NO apropiativo por lo que resulta de poca utilidad en
ambientes de tiempo compartido.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_417.html
Planificación del Trabajo Más Corto Primero (SJF)
Es una disciplina no apropiativa y por lo tanto no
recomendable en ambientes de tiempo compartido.
El proceso en espera con el menor tiempo estimado de
ejecución hasta su terminación es el siguiente en ejecutarse.
Los tiempos promedio de espera son menores que con
“FIFO”.
Los tiempos de espera son menos predecibles que en
“FIFO”.
Favorece a los procesos cortos en detrimento de los
largos.
Tiende a reducir el número de procesos en espera y el número
de procesos que esperan detrás de procesos largos.
Requiere un conocimiento preciso del tiempo de ejecución de
un proceso, lo que generalmente se desconoce.
Se pueden estimar los tiempos en base a series de valores
anteriores.
Planificación del Tiempo Restante Más Corto (SRT)
Es la contraparte apropiativa del SJF.
Es útil en sistemas de tiempo compartido.
El proceso con el tiempo estimado de ejecución menor para
…nalizar es el siguiente en ser ejecutado.
Un proceso en ejecución puede ser apropiado por un nuevo
proceso con un tiempo estimado de ejecución menor.
Tiene mayor sobrecarga que la planificación SJF.
Debe mantener un registro del tiempo de servicio transcurrido
del proceso en ejecución, lo que aumenta la sobrecarga.
Los trabajos largos tienen un promedio y una varianza de los
tiempos de espera aún mayor que en SJF.
La apropiación de un proceso a punto de terminar por otro de
menor duración recién llegado podría significar un mayor tiempo de cambio de
contexto (administración del procesador) que el tiempo de finalización del
primero.
Al diseñarse los Sistemas Operativos se debe considerar
cuidadosamente la sobrecarga de los mecanismos de administración de recursos
comparándola con los beneficios esperados.
Planificación el Siguiente con Relación de Respuesta Máxima
(HRN)
Corrige algunas de las debilidades del SJF, tales como el
exceso de perjuicio hacia los procesos (trabajos) largos y el exceso de
favoritismo hacia los nuevos trabajos cortos.
Es una disciplina no apropiativa.
La prioridad de cada proceso está en función no sólo del
tiempo de servicio del trabajo, sino que también influye la cantidad de tiempo
que el trabajo ha estado esperando ser servido.
Cuando un proceso ha obtenido la cpu, corre hasta
terminar.
Las prioridades, que son dinámicas, se calculan según la
siguiente fórmula, donde pr es la “prioridad”, te es el “tiempo de espera” y ts
es el “tiempo de servicio”:
Planificación del tiempo restante más corto primero (SRT).
La SRT es apropiativa, en ella el proceso con el tiempo
estimado de ejecución menor para llegar a su terminación es el siguiente en ser
ejecutado, incluyendo las nuevas llegadas. En la disciplina SJF, una vez que el
trabajo comienza su ejecución sigue hasta que termina. En SRT, un proceso en
ejecución puede ser apropiado por un nuevo proceso con n tiempo estimado de
ejecución menor.
La SRT tiene una sobrecarga mayor que la SJF. Debe
mantener un registro del tiempo de servicio transcurrido del trabajo en
ejecución y debe controlar las apropiaciones ocasionales.
Planificación el siguiente con relación de
respuesta máxima (HRT).
Brinch Hansen (1971) desarrolló la estrategia el
siguiente con relación de respuesta máxima (HRT), que corrige algunas de las
debilidades de SJF, en especial el favoritismo por los tamaños pequeños. La HRT
es una disciplina de planificación NO apropiativa en la cual la prioridad de
cada trabajo está en función, no sólo del tiempo de servicio del trabajo, sino
del tiempo que un proceso ha estado esperando a ser servido, Una vez que un trabajo
obtiene el CPU, se ejecuta hasta su terminación. Las prioridades
dinámicas en HRT se calculan según la fórmula
Tiempo de espera + Tiempo de servicio
Prioridad =
Tiempo de servicio
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_417.html
2.12.3 RR
Planificación Round Robin (RR).
En esta planificación, figura # 43. Los procesos son
despachados en FIFO, pero, se les otorga una cantidad limitada de tiempo de CPU
llamada división de tiempo (time - slice) o cuanto (quantum). Si un proceso no
termina antes de que se termine su tiempo de CPU, el CPU es apropiado y
asignado al siguiente proceso en espera. El proceso apropiado se coloca al
final de la lista de listos.
Figura # 43. Planeación round robin.
El esquema Round robin es efectivo en un
ambiente de tiempo compartido en el cual el sistema necesita garantizar un
tiempo de respuesta razonable para los usuarios interactivos. La sobre
carga de la apropiación se mantiene baja mediante eficientes mecanismos
de cambio de contexto y proporcionado suficiente memoria para que los procesos
residan en ella al mismo tiempo.
Existe una variante de este esquema llamada selfish
round robin (SRR). En este esquema los procesos que entran al sistema se
colocan primero en una lista de espera hasta que su prioridad alcanza el nivel
de proceso para la lista de activos. Mientras un proceso está en la lista de
espera, su prioridad aumenta en una relación a; cuando un proceso entra a la
lista de activos su prioridad se incrementa en una relación b.
Tamaño del cuanto.
La determinación del tamaño del cuanto es decisiva para
la operación efectiva de un sistema computacional. ¿Debe ser pequeño o
grande el cuanto? ¿Debe ser fijo o variable? ¿Debe ser el mismo para todos los
usuarios, o debe ser diferente para cada grupo de usuarios?.
Cuando se tiene un cuanto grande cada proceso pude
recibir todo el tiempo que necesita para su terminación, de manera que el
esquema round robin se convierte en un FIFO. Cuando el cuanto es pequeño,
la sobrecarga por el intercambio de contexto se convierte en un factor
dominante y el rendimiento del sistema se degrada.
¿Cuál es el cuanto óptimo ? Es claro que cambia de un
sistema a otro y que varia de acuerdo a la carga del sistema.
http://eduadis.itlapiedad.edu.mx/~hocegueras/so1/so1_417.html
SCHED_RR: Planificación circular
(Round Robin).
SCHED_RR es una mejora simple de SCHED_FIFO. Todo lo descrito
arriba para SCHED_FIFO se aplica también a SCHED_RR, excepto que a cada proceso
sólo se le permite ejecutarse durante un cuanto de tiempo máximo. Si un proceso
SCHED_RR ha estado ejecutándose durante un periodo de tiempo igual o mayor que
el cuanto de tiempo, será puesto al final de la lista para su prioridad. Un
proceso SCHED_RR que ha sido apropiado por un proceso de más alta prioridad y
subsecuentemente reanuda su ejecución como un proceso en ejecución, completará
la porción no expirada de su cuanto de tiempo de asignación en rueda. La
cantidad del cuanto de tiempo puede ser obtenida con
sched_rr_get_interval.
http://www.hispafuentes.com/hf-doc/man/man2/sched_setscheduler.2.html
Planificación de Asignación en Rueda (RR: Round Robin)
Los procesos se despachan en “FIFO” y disponen de una
cantidad limitada de tiempo de cpu, llamada “división de tiempo” o
“cuanto”.
Si un proceso no termina antes de expirar su tiempo de cpu
ocurren las siguientes acciones:
1. La cpu es apropiada.
2. La cpu es otorgada al siguiente proceso en espera.
3. El proceso apropiado es situado al final de la lista de
listos.
Es efectiva en ambientes de tiempo compartido.
La sobrecarga de la apropiación se mantiene baja mediante
mecanismos eficientes de intercambio de contexto y con suficiente memoria
principal para los procesos.
Tamaño del Cuanto o Quantum
La determinación del tamaño del cuanto es decisiva para la
operación efectiva de un sistema computacional [7, Deitel].
Los interrogantes son: ¿cuanto pequeño o grande?, ¿cuanto
fijo o variable? y ¿cuanto igual para todos los procesos de usuarios o
determinado por separado para cada uno de ellos?.
Si el cuanto se hace muy grande, cada proceso recibe todo el
tiempo necesario para llegar a su terminación, por lo cual la asignación en
rueda (“RR”) degenera en “FIFO”.
Si el cuanto se hace muy pequeño, la sobrecarga del
intercambio de contexto se convierte en un factor dominante y el rendimiento
del sistema se degrada, puesto que la mayor parte del tiempo de cpu se invierte
en el intercambio del procesador (cambio de contexto) y los procesos de usuario
disponen de muy poco tiempo de cpu.
El cuanto debe ser lo suficientemente grande como para
permitir que la gran mayoría de las peticiones interactivas requieran de menos
tiempo que la duración del cuanto, es decir que el tiempo transcurrido desde el
otorgamiento de la cpu a un proceso hasta que genera una petición de Entrada /
Salida debe ser menor que el cuanto establecido, de esta forma, ocurrida la
petición la cpu pasa a otro proceso y como el cuanto es mayor que el tiempo
transcurrido hasta la petición de Entrada / Salida, los procesos trabajan al
máximo de velocidad, se minimiza la sobrecarga de apropiación y se maximiza la
utilización de la
Entrada / Salida.
El cuanto óptimo varía de un sistema a otro y con la carga,
siendo un valor de referencia 100 mseg (cien milisegundos).
2.12.4 Queves multi-level.
Planificación de Dos Niveles
Los esquemas analizados hasta ahora suponen que todos los
procesos ejecutables están en la memoria principal.
Si la memoria principal es insuficiente, ocurrirá lo
siguiente [23, Tanenbaum]:
• Habrá procesos ejecutables que se mantengan en disco.
• Habrá importantes implicaciones para la planificación,
tales como las siguientes:
o El tiempo de alternancia entre procesos para traer y
procesar un proceso del disco es considerablemente mayor que el tiempo para un
proceso que ya está en la memoria principal.
o Es más eficiente el intercambio de los procesos con un
planificador de dos niveles.
El esquema operativo de un planificador de dos niveles es
como sigue:
1. Se carga en la memoria principal cierto subconjunto de los
procesos ejecutables.
2. El planificador se restringe a ellos durante cierto
tiempo.
3. Periódicamente se llama a un planificador de nivel
superior para efectuar las siguientes tareas:
1. Eliminar de la memoria los procesos que hayan permanecido
en ella el tiempo suficiente.
2. Cargar a memoria los procesos que hayan estado en disco
demasiado tiempo.
4. El planificador de nivel inferior se restringe de nuevo a
los procesos ejecutables que se encuentren en la memoria.
5. El planificador de nivel superior se encarga de desplazar
los procesos de memoria a disco y viceversa.
Los criterios que podría utilizar el planificador de nivel
superior para tomar sus decisiones son los que se indican a continuación:
• ¿Cuánto tiempo ha transcurrido desde el último intercambio
del proceso?.
• ¿Cuánto tiempo de cpu ha utilizado recientemente el
proceso?.
• ¿Qué tan grande es el proceso? (generalmente los procesos
pequeños no causan tantos problemas en este sentido).
• ¿Qué tan alta es la prioridad del proceso?.
El planificador de nivel superior podría utilizar cualquiera
de los métodos de planificación analizados.
2.12.5 Multi-level feedback queves.
Colas de Retroalimentación de Niveles Múltiples
Proporcionan una estructura para lograr los siguientes
objetivos:
• Favorecer trabajos cortos.
• Favorecer trabajos limitados por la Entrada / Salida para
optimizar el uso de los dispositivos de Entrada / Salida.
• Determinar la naturaleza de un trabajo lo más rápido
posible y planificar el trabajo (proceso) en consecuencia.
Un nuevo proceso entra en la red de línea de espera al final
de la cola superior.
Se mueve por esta cola “FIFO” hasta obtener la cpu.
Si el trabajo termina o abandona la cpu para esperar por la
terminación de una operación de Entrada / Salida o la terminación de algún otro
suceso, el trabajo abandona la red de línea de espera.
Si su cuanto expira antes de abandonar la cpu
voluntariamente, el proceso se coloca en la parte trasera de la cola del
siguiente nivel inferior.
El trabajo recibe servicio al llegar a la cabeza de esta cola
si la primera está vacía.
Mientras el proceso continúe consumiendo totalmente su cuanto
en cada nivel, continuará moviéndose hacia el final de las colas
inferiores.
Generalmente hay una cola en la parte más profunda a través
de la cual el proceso circula en asignación de rueda hasta que termina.
Existen esquemas en los que el cuanto otorgado al proceso
aumenta a medida que el proceso se mueve hacia las colas de los niveles
inferiores, en tal caso, cuanto más tiempo haya estado el proceso en la red de
línea de espera, mayor será su cuanto cada vez que obtiene la cpu y no podrá
obtener la cpu muy a menudo debido a la mayor prioridad de los procesos de las
colas superiores.
Un proceso situado en una cola dada no podrá ser ejecutado
hasta que las colas de los niveles superiores estén vacías.
Un proceso en ejecución es apropiado por un proceso que
llegue a una cola superior.
Es un mecanismo adaptable, es decir que se adapta a cargas
variables.
No hay comentarios:
Publicar un comentario