Вы находитесь на странице: 1из 8

Planificacin de Procesos Qu tiempo de procesador es asignado a cada proceso en un sistema multiprogramado?

Lo determina el PLANIFICADOR a travs del uso de algoritmos especficos. Objetivos y niveles Necesidad de la planificacin En pocas pasadas de los sistemas de procesamiento por lotes (batch), la idea que exista sobre la planificacin era bastante simple y consista en aplicar un algoritmo secuencial. Esto produca un desaprovechamiento muy importante de las capacidades del procesador ya que la ejecucin de un proceso alternaba entre dos estados de ejecucin: utilizando la CPU o esperando a que se realice una operacin de E/S, por lo que mientras se trabajaba con un dispositivo, el procesador se encontraba inactivo.
Ms tarde, surgieron los sistemas multiprogramados, en donde se intent maximizar la utilizacin de la CPU. Esto se pudo conseguir manteniendo varios procesos en la memoria, y cuando un proceso tena que esperar, el sistema operativo le quitaba la CPU y se lo asignaba a otro proceso que se encontraba en dicha memoria. Por lo tanto, la tarea de la planificacin cobr gran importancia por su incidencia directa sobre el rendimiento del sistema, ya que el sistema operativo deba decidir qu proceso esperara y qu proceso continuara.

Definicin Podemos definir a la planificacin como un conjunto de polticas y mecanismos incorporados al sistema operativo, a travs de un mdulo denominado planificador, que debe decidir cul de los procesos en condiciones de ser ejecutado conviene ser despachado primero y qu orden de ejecucin debe seguirse. Esto debe realizarse sin perder de vista su principal objetivo que consiste en el mximo aprovechamiento del sistema, lo que implica proveer un buen servicio a los procesos existentes en un momento dado. Un "buen" servicio podra traducirse en tiempo de respuesta aceptable, productividad y eficiencia del procesador.. Objetivos de la Planificacin Los objetivos de la planificacin del procesador son los siguientes:
y

Ser justa: Todos los procesos son tratados de igual manera. Ningn proceso es postergado indefinidamente. Maximizar la capacidad de ejecucin:  Maximizar el nmero de procesos servidos por unidad de tiempo. Maximizar el nmero de usuarios interactivos que reciban unos tiempos de respuesta aceptables: y En un mximo de unos segundos. Ser predecible: y Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema. Minimizar la sobrecarga: y No suele considerarse un objetivo muy importante. Equilibrar el uso de recursos: y Favorecer a los procesos que utilizarn recursos infrautilizados. Equilibrar respuesta y utilizacin: y La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilizacin total de recursos podr ser pobre. Evitar la postergacin indefinida: y Se utiliza la estrategia del envejecimiento .
 

y y

y y y

y


 

Ni l

l
%

ii

La planificaci n se hace en cuatro instantes de tiempo. De estas cuatro, una no la reali a el sistema operativo, sino que es externa al procesamiento, pero tiene una influencia enorme sobre la definici n del procesamiento, dado que el sistema operativo queda determinado por las decisiones que se toman en este nivel. A esta instancia le daremos el nombre de "extra largo plazo" por ser en la escala de tiempo del ser humano. En la administraci n del procesador podemos distinguir tres niveles de planificaci n de acuerdo a la escala de tiempo en que se realiza la misma. El largo plazo en segundos, mediano plazo en milisegundos y el corto plazo en nanosegundos o
% % % &

"

Los mecanismos de plani icaci n deben favorecer a los procesos con prioridades ms altas. Dar preferencia a l s procesos que mantienen recursos claves:  Un proceso de baja prioridad podra mantener un recurso clave, que puede ser requerido por un proceso de ms alta prioridad.  Si el recurso es no apropiativo, el mecanismo de planificaci n debe otorgar al proceso un tratamiento mejor del que le correspondera normalmente, puesto que es necesario liberar rpidamente el recurso clave. Dar mejor tratamiento a los procesos que muestren un comportamiento deseable:  Un ejemplo de comportamiento deseable es una tasa baja de paginaci n. Degradarse suavemente con cargas pesadas:  Un mecanismo de planificaci n no debe colapsar con el peso de una exigente carga del sistema.  Se debe evitar una carga excesiva mediante las siguientes acciones: No permitiendo que se creen nuevos procesos cuando la carga ya es pesada. Dando servicio a la carga ms pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos.


Asegurar la pri ri ad:




        

Mi t i i

i i

ll

lt

i i l

microsegundos.

Pl i i i l g l z El planificador a l g l z , h ul l ii , es un administrador que se encarga de organizar la ejecuci n con un adecuado planeamiento de recursos para que el trabajo se ejecute ordenadamente y eficientemente segn la modalidad de procesamiento. El sheduler se ejecuta con poca frecuencia, slo cuando se necesita crear un nuevo proceso en el sistema, cuando termina un proceso, o ingresa un usuario en el sistema, por lo que tiene prioridad mxima para ejecutar. Es el responsable de controlar el nivel de multiprogramacin del sistema y el balance de carga del sistema. Esto ltimo implica la seleccin cuidadosa de trabajos para mantener un adecuado balance de carga de procesos que hacen uso de E/S intensivo (I/O bound) o uso de C U intensivo (C U bound). Procedamos a describir un poco su accionar ante un nuevo trabajo. Un software del sistema operativo, llamado monitor, recibe al nuevo trabajo y lo carga en la memoria central. Despus de haber sido recibido el trabajo, el sheduler se encarga de preparar y crear procesos con sus respectivos bloques de control del proceso (BCP) para poder ejecutarlos. Si los recursos que solicita estuvieran disponibles, se le asignan y se lo ingresa a la cola de listos para ejecutar. Existen diferentes filosofas en el procesamiento de un trabajo. odas ellas responden a ciertos criterios de planificacin que se vuelcan en los respectivos algoritmos de planificacin. Esto se conoce como la modalidad de ejecucin o procesamiento. Los ms importantes son:
Batch: Apunta estrictamente al exhaustivo uso del procesador en detrimento del usuario. Sus principales caractersticas son: La CPU es monoprogramada. No existe diferencia entre trabajo y proceso. El scheduler elige el trabajo, crea el proceso y lo ejecuta. Prcticamente hay un solo nivel de planificacin. Interactivo: Apunta al servicio del usuario en detrimento de la performance del procesador. Es multiprogramado pues se multiplexa la CPU entre varios programas.
0 ) ( ' (

1. 2. 3. 4.

ultiprocesado: Es un ambiente en el que existen varios procesadores para servir a los procesos en ejecucin.

Procesamiento distribuido o en red: Es una forma de procesamiento en que se le presenta al usuario una mquina virtual y en que el procesamiento se realiza en distintas mquinas diseminadas geogrficamente y conectadas por una red. En conclusin y siendo un poco ms precisos, podramos decir que las tareas que involucra este nivel de planificacin son:
y y y y y y y

Mantener un registro de estado de todos los trabajos en el sistema (JBC). Establecer una estrategia para el pasaje entre las colas de suspendidos y la de listos. Asignar recursos (memoria central, dispositivos, procesadores, etc.) a cada trabajo. Pedir (recuperar) los recursos cuando los trabajos se han completado. Detectar y prevenir los conflictos de abrazo mortal o deadlock. Dar entrada a nuevos trabajos. Asignar prioridades a los procesos. Esto genera el orden de ejecucin y viene determinado bsicamente por el orden de procesos en la cola de listos, o sea, el orden en el que el dispatcher los seleccionar de esta cola para ponerlos en ejecucin (generalmente el primero de la cola). Implementar las polticas de asignacin de recursos, razn por la que se le otorga la mxima prioridad en el sistema para que el dispatcher lo seleccione primero si est libre el procesador y se ejecuta cuando:

1. Se pide o libera un recurso. 2. Cuando termina un proceso. 3. Cuando llega un nuevo trabajo al pool de procesos 4. Cuando llega un nuevo usuario al sistema.

Pl i i i m i l z Es el que decide sacar de memoria central y llevar a disco (swap-out) a aquellos procesos inactivos o a los activos cuyos estados sean bloqueado momentneamente o temporalmente o los suspendidos y luego, cuando desaparezcan las causas de sus bloqueos, traerlos nuevamente a memoria (swap-in) para continuar su ejecucin. Este tipo de planificador se encuentra solo en algunos sistemas especialmente en los de tiempo compartido, ya que permite mantener un equilibrio entre los procesos activos e inactivos. Este planificador puede ser invocado cuando quede espacio libre de memoria por efecto de la terminacin de un proceso o cuando el suministro de procesos caiga por debajo de un lmite especificado. En algunos casos suplanta al planificador de largo plazo y otros lo complementa: Por ejemplo en sistemas de tiempo compartido, el long-term scheduler puede admitir ms usuarios de los que pueden caber realmente en memoria. Sin embargo, como los trabajos de estos sistemas estn caracterizados por ciclos de actividad y ciclos de ociosidad, mientras el usuario piensa algunos procesos pueden ser almacenados y al recibir respuesta vueltos a poner en la cola de listo s. Este tipo de planificacin solo es usado en sistemas con mucha carga de procesos, ya que el procedimiento de swapping produce mucho overhead, haciendo bajar considerablemente el desempeo general.

l z Pl i i i ambin llamado h - m h ul l w h ul , es el responsable de decidir quin, cundo, cmo y por cunto tiempo recibe el procesador un proceso que est preparado (ready queue) para ejecutar (los recursos a esta altura ya deben estar todos disponibles para este trabajo). Adems en sistemas operativos con esquemas expropiativos (se quita el recurso procesador al proceso) verifica las interrupciones. El planificador a corto plazo es invocado cada vez que un suceso (interno o externo) hace que se modifique el estado global del sistema. Por ejemplo: ics de reloj (interrupciones basadas en el tiempo). Interrupciones y terminaciones de E/S. La mayora de las llamadas operacionales al sistema operativo (en oposicin a las llamadas de consulta). El envo y recepcin de seales. La activacin de programas interactivos.
El low scheduler debe ser rpido y con poca carga para el procesador para que se mantenga el rendimiento, ya que se le debe sumar adems el tiempo que toma el cambio de contexto. El cambio de contexto o context switch consiste en la conmutacin de la CPU entre un proceso y otro y es overhead puro, por lo tanto debe ser lo ms rpido posible. Algunos valores tpicos oscilan entre 1 y 100 m seg que se conoce como dispatch latency. El context switch involucra: Preservar el estado del viejo proceso (guardar en el stack su PCB). Recuperar el estado del nuevo proceso (recuperar su PCB). Bifurcar a la direccin donde haba sido suspendido el nuevo proceso.
1

y y y

Apropiativos y No Apropiativos El planificador es el mdulo del sistema operativo que decide qu proceso se debe ejecutar, para ello usa un algoritmo de planificacin que debe cumplir con los siguientes objetivos:

Imparcialidad. Poltica justa. Eficiencia: mantener la CPU ocupada en lo posible el mayor tiempo con procesos de usuario. Minimizar el tiempo de espera de usuarios. Maximizar el nmero de procesos ejecutados. (Rendimiento: trabajos que se procesan por hora). Tiempo de respuesta excelente (por ejemplo: minimizar el tiempo de respuesta para los usuarios interactivos). 7. Predecibilidad en la ejecucin. 8. Equilibrio en el uso de los recursos. Antes de comenzar a describir los respectivos algoritmos de planificacin, es importante conocer dos conceptos relacionados. Uno de ellos es la funcin de seleccin que determina qu proceso, de entre los listos, se elige para ejecutar a continuacin. El otro es el modo de decisin o esquema de planificacin, que especifica los instantes de tiempo en que se aplica la funcin de seleccin. Hay dos categoras generales: No Apropiativo (Una vez que se le ha otorgado la cpu a un proceso, no le puede ser retirada) Tambin conocido como cooperative multitasking. Una vez que el proceso pasa al estado de ejecucin, contina ejecutando hasta que termina, se bloquean e espera de una E/S o al n solicitar algn servicio del sistema. Esta poltica de ejecucin para terminacin fue implementada en los primeros sistemas de lote (batch). Caractersticas

1. 2. 3. 4. 5. 6.

y y y

Significa que los trabajos largos hacen esperar a los trabajos cortos. Logra ms equidad en el tratamiento de los procesos. Logra hacer ms predecibles los tiempos de respuesta puesto que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera. Apropiativo (Una vez que se le ha otorgado la cpu a un proceso, le puede ser retirada) Generalmente conocida como poltica de planificacin por torneo. El proceso que se est ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema operativo. La decisin de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando se produce una interrupcin que lleva a un proceso bloqueado al estado listo o peridicamente, en funcin de una interrupcin del reloj. Caractersticas

y y y

Es til cuando los procesos de alta prioridad requieren atencin rpida. Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido. Tiene su costo en recursos, ya que el intercambio de contexto implica sobrecarga y adems requiere mantener muchos procesos en el almacenamiento principal, en espera de la cpu, lo que tambin implica sobrecarga.

FCFS y SJF FCFS (First Co e First Served)


La poltica ms simple de planificacin es la FCFS. A medida que un proceso pasa al estado listo, este es agregado a la cola de listos. Cuando el proceso que actualmente est ejecutando cesa su ejecucin entonces el proceso ms viejo en la cola es seleccionado para correr. La implementacin de esta poltica es a travs de colas F FO (First-In, First-Out). Cuando el CPU est libre, ste es asignado al proceso que est en la cabeza de la cola. FCFS es un algoritmo nonpreemptive "no apropiativo", pues una vez que el CPU es asignado a un proceso, este lo mantiene hasta que espontneamente lo suelta, ya sea porque el proceso finaliz o por algn requerimiento de E/S. El tiempo de espera bajo esta poltica tiende a ser alto. Adems , tiende a favorecer aquellos procesos que requieren ms tiempo de CPU (CPU-bound). Consideren el caso donde tenemos una coleccin de procesos. Uno de ellos utiliza ms CPU que los otros, y el resto de los procesos requieren ms trabajo de E/S ( /O-bound). Cuando el I proceso CPU-bound ejecuta, los otros procesos esperan. Algunos de estos estarn en las colas de los dispositivos de E/S pero eventualmente en algn instante pasarn a la cola de procesos listos. En este momento, muchos de los dispositivos de E/S estarn ociosos. Cuando el proceso en ejecucin deje el estado Running, los procesos I/O-bound pasarn a ejecutar y rpidamente volvern a bloquearse en espera de E/S. Si el proceso CPU-bound se encuentra bloqueado, entonces el procesador estar ocioso. Por lo tanto, FCFS puede ocasionar un uso indeficiente tanto del procesador como de los dispositivos de E/S.

Proceso

Tie po de Tie po de Tie po de Tie po de T rnaro nd Tie po de Lle ada Servicio Co ien o Finali acin Espera
0 1 2 3 1 100 1 100 0 1 101 102 1 101 102 202 1 100 100 199 100 0 0 101-2=99 102-3=99 49.50

Pro edio

Planificacin en SJF El algoritmo primero el trabajo ms corto (shortest job - first). Establece para la planificacin una relacin entre proceso y rfaga de la CPU. Es decir, al liberarse la cpu ingresar el proceso con la menor rfaga de tiempo, el ms pequeo primero, y si existiera ms de un proceso con igual valor, pues se aplicara dentro de este el algoritmo anterior (FCFS).
Este algoritmo presenta una gran ventaja, pues el tiempo de espera ser mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S, el cpu se ocupa de resolver el proceso con mayor tiempo, un algoritmo muy ptimo. El problema est en conocer la duracin del prximo requerimiento de CPU para cada proceso. pero podemos predecirlos usando la informacin de los ciclos anteriores ejecutados.

Proceso A B C D Promedio

Tiempo llegada 0 1 2 3

de Tiemppo de Tiempo de Tiempo de Turnaround Tiempo Servicio Comienzo Finalizacin Espera 8 4 9 5 0 8 17 12 8 12 26 1 8 12-1=11 26-2=24 17-3=14 14.25 0 8-1=7 17-2=15 12-3=9 10.33

de

Prioridades Prioridades estticas:


y

Se asigna una prioridad al proceso para toda su ``vida''.

Por eje plo, puede reflejar distintos ``status'' de los usuarios. Prioridades din icas:

y y

La prioridad de un proceso cambia durante su vida. El cambio de prioridad puede reflejar informacin nueva que se tiene sobre el comportamiento de un proceso.

y y

Eje plo: favorecimiento de procesos con mucha entrada/salida. Pueden usarse clases de prioridad, cada clase ordenada mediante una cola. Para gestionar cada cola, puede usarse round-robin.

Ro nd Robin Una manera rpida de reducir la penalizacin que los procesos cortos sufren con FCFS es usar expropiacin basada en un reloj.Una interrupcin de reloj es generada a intervalos peridicos. Cuando ocurre la interrupcin, el proceso en ejecucin es colocado en la cola de procesos listos y el prximo trabajo es seleccionado basado en el esquema FCFS.Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado quantum o cuanto.
La principal decisin de diseo que surge con Round Robin es el tamaoquantum. Si es muy corto, entonces los procesos se movern a travs del sistema rpidamente. Por otro lado, hay un

cierto overhead o desperdicio de tiempo envuelto con el manejo de la interrupcin de reloj y las funciones de planificacin y despacho. Por lo tanto quantums muy pequeos deberan evitarse. Una alternativa es usar un quantum de tiempo que sea un poco ms grande que el iempo t promedio requerido para una interaccin tpica. Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se implementa con una cola I O de procesos. Nuevos procesos son agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que interrumpa despus del quantum de tiempo. El desempeo de este algoritmo depender del tamao del quantum. Si el quantum es infinito entonces degenera en CFS. Si el quantum es muy pequeo entonces Round Robin es llamado comparticin de CPU y en teora pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del procesador real.
3 33

Вам также может понравиться