Planificación de Procesos Qué tiempo de procesador es asignado a cada proceso en un sistema multiprogramado?

Lo determina el PLANIFICADOR a través del uso de algoritmos específicos. Objetivos y niveles Necesidad de la planificación En épocas pasadas de los sistemas de procesamiento por lotes (batch), la idea que existía sobre la planificación era bastante simple y consistía en aplicar un algoritmo secuencial. Esto producía un desaprovechamiento muy importante de las capacidades del procesador ya que la ejecución de un proceso alternaba entre dos estados de ejecución: utilizando la CPU o esperando a que se realice una operación de E/S, por lo que mientras se trabajaba con un dispositivo, el procesador se encontraba inactivo.
Más tarde, surgieron los sistemas multiprogramados, en donde se intentó maximizar la utilización de la CPU. Esto se pudo conseguir manteniendo varios procesos en la memoria, y cuando un proceso tenía 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 planificación cobró gran importancia por su incidencia directa sobre el rendimiento del sistema, ya que el sistema operativo debía decidir qué proceso esperaría y qué proceso continuaría.

Definición Podemos definir a la planificación como un conjunto de políticas y mecanismos incorporados al sistema operativo, a través de un módulo denominado planificador, que debe decidir cuál de los procesos en condiciones de ser ejecutado conviene ser despachado primero y qué orden de ejecución debe seguirse. Esto debe realizarse sin perder de vista su principal objetivo que consiste en el máximo aprovechamiento del sistema, lo que implica proveer un buen servicio a los procesos existentes en un momento dado. Un "buen" servicio podría traducirse en tiempo de respuesta aceptable, productividad y eficiencia del procesador.. Objetivos de la Planificación Los objetivos de la planificación del procesador son los siguientes:
y

Ser justa: Todos los procesos son tratados de igual manera. Ningún proceso es postergado indefinidamente. Maximizar la capacidad de ejecución:  Maximizar el número de procesos servidos por unidad de tiempo. Maximizar el número de usuarios interactivos que reciban unos tiempos de respuesta aceptables: y En un máximo 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 utilizarán recursos infrautilizados. Equilibrar respuesta y utilización: y La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilización total de recursos podrá ser pobre. Evitar la postergación indefinida: y Se utiliza la estrategia del ³envejecimiento´ . 


y y

y

y y y

y

 Se debe evitar una carga excesiva mediante las siguientes acciones: No permitiendo que se creen nuevos procesos cuando la carga ya es pesada. Degradarse suavemente con cargas pesadas:  Un mecanismo de planificaci n no debe colapsar con el peso de una exigente carga del sistema. Dar preferencia a l s procesos que mantienen recursos claves:  Un proceso de baja prioridad podría mantener un 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. 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. Dando servicio a la carga más pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos. A esta instancia le daremos el nombre de "extra largo plazo" por ser en la escala de tiempo del ser humano.   y Asegurar la pri ri ad:   £ ¤ ¤ ¨  ¨ §© ¢  ¦   § ¢¥   ¢   ¢    ¢ £ £ ¤¨ £ £ £ ¤£ £ £ ¤£  £ §   §¢¦     ¥  ¡ ¢  ¢   © © ¢§ ¢¦ ¢ ¡  ¥ £ ¤ ¤ ¨ £ ¤ ¤ ¨ ¤£     © © © ¢§ ¢¦ ¥ § ¢¥   ¢ ¡¥ ¢§ ¦ ¢  ¦   §   §¢¦ ¡¥ ¢ ¡  Mi t i i t íl i i ll t lt i i l l . dado que el sistema operativo queda determinado por las decisiones que se toman en este nivel. una no la reali a el sistema operativo. puesto que es necesario liberar rápidamente el recurso clave. mediano plazo en milisegundos y el corto plazo en nanosegundos o % % % & $ y " # ! y Los mecanismos de plani icaci n deben favorecer a los procesos con prioridades más altas.y  y   Ni l l % ii i La planificaci n se hace en cuatro instantes de tiempo. el mecanismo de planificaci n debe otorgar al proceso un tratamiento mejor del que le correspondería normalmente. que puede ser requerido por un proceso de más alta prioridad. De estas cuatro. El largo plazo en segundos.  Si el recurso es no apropiativo. sino que es externa al procesamiento. pero tiene una influencia enorme sobre la definici n del procesamiento.

llamado monitor. Los más importantes son: Batch: Apunta estrictamente al exhaustivo uso del procesador en detrimento del usuario. Si los recursos que solicita estuvieran disponibles. En conclusión y siendo un poco más precisos. o sea. razón por la que se le otorga la máxima prioridad en el sistema para que el dispatcher lo seleccione primero si está libre el procesador y se ejecuta cuando: . Es el responsable de controlar el nivel de multiprogramación del sistema y el balance de carga del sistema. o ingresa un usuario en el sistema. 0 ) ( ' ( 1. crea el proceso y lo ejecuta. Asignar prioridades a los procesos. Sus principales características son: La CPU es monoprogramada. Prácticamente hay un solo nivel de planificación. podríamos decir que las tareas que involucra este nivel de planificación son: y y y y y y y y Mantener un registro de estado de todos los trabajos en el sistema (JBC).) a cada trabajo. Esto último implica la selección 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). sólo cuando se necesita crear un nuevo proceso en el sistema. procesadores. Esto genera el orden de ejecución y viene determinado básicamente por el orden de procesos en la cola de listos. Procesamiento distribuido o en red: Es una forma de procesamiento en que se le presenta al usuario una máquina virtual y en que el procesamiento se realiza en distintas máquinas diseminadas geográficamente y conectadas por una red. Es multiprogramado pues se multiplexa la CPU entre varios programas. No existe diferencia entre trabajo y proceso. Después de haber sido recibido el trabajo. Pedir (recuperar) los recursos cuando los trabajos se han completado. Procedamos a describir un poco su accionar ante un nuevo trabajo. h ul l ii . odas ellas responden a ciertos criterios de planificación que se vuelcan en los respectivos algoritmos de planificación. 3. ultiprocesado: Es un ambiente en el que existen varios procesadores para servir a los procesos en ejecución.microsegundos. Asignar recursos (memoria central. Pl i i i l g l z El planificador a l g l z . Dar entrada a nuevos trabajos. Un software del sistema operativo. por lo que tiene prioridad máxima para ejecutar. el orden en el que el dispatcher los seleccionará de esta cola para ponerlos en ejecución (generalmente el primero de la cola). dispositivos. El sheduler se ejecuta con poca frecuencia. cuando termina un proceso. Implementar las políticas de asignación de recursos. 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 según la modalidad de procesamiento. 4. Existen diferentes filosofías en el procesamiento de un trabajo. el sheduler se encarga de preparar y crear procesos con sus respectivos bloques de control del proceso (BCP) para poder ejecutarlos. El scheduler elige el trabajo. 2. etc. Detectar y prevenir los conflictos de abrazo mortal o deadlock. Esto se conoce como la modalidad de ejecución o procesamiento. se le asignan y se lo ingresa a la cola de listos para ejecutar. Interactivo: Apunta al servicio del usuario en detrimento de la performance del procesador. recibe al nuevo trabajo y lo carga en la memoria central. Establecer una estrategia para el pasaje entre las colas de suspendidos y la de listos.

ya que permite mantener un equilibrio entre los procesos activos e inactivos. Se pide o libera un recurso. Cuando llega un nuevo usuario al sistema. El context switch involucra: Preservar el estado del viejo proceso (guardar en el stack su PCB). · El envío y recepción de señales. ya que el procedimiento de swapping produce mucho overhead. Además en sistemas operativos con esquemas expropiativos (se quita el recurso procesador al proceso) verifica las interrupciones. Sin embargo. Algunos valores típicos oscilan entre 1 y 100 m seg que se conoce como dispatch latency. 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 momentáneamente o temporalmente o los suspendidos y luego. cuando desaparezcan las causas de sus bloqueos. Cuando termina un proceso. como los trabajos de estos sistemas están caracterizados por ciclos de actividad y ciclos de ociosidad. · La activación de programas interactivos. 1 y y y 1 . 3. El cambio de contexto o context switch consiste en la conmutación de la CPU entre un proceso y otro y es overhead puro. es el responsable de decidir quién. Por ejemplo: · ics de reloj (interrupciones basadas en el tiempo). Bifurcar a la dirección donde había sido suspendido el nuevo proceso. Este planificador puede ser invocado cuando quede espacio libre de memoria por efecto de la terminación de un proceso o cuando el suministro de procesos caiga por debajo de un límite especificado. ya que se le debe sumar además el tiempo que toma el cambio de contexto.1. cuándo. 2. El low scheduler debe ser rápido y con poca carga para el procesador para que se mantenga el rendimiento. Este tipo de planificación solo es usado en sistemas con mucha carga de procesos. Este tipo de planificador se encuentra solo en algunos sistemas especialmente en los de tiempo compartido. cómo y por cuánto 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). En algunos casos suplanta al planificador de largo plazo y otros lo complementa: Por ejemplo en sistemas de tiempo compartido. mientras el usuario piensa algunos procesos pueden ser almacenados y al recibir respuesta vueltos a poner en la cola de listo s. por lo tanto debe ser lo más rápido posible. · La mayoría de las llamadas operacionales al sistema operativo (en oposición a las llamadas de consulta).m h ul l w h ul . El planificador a corto plazo es invocado cada vez que un suceso (interno o externo) hace que se modifique el estado global del sistema. haciendo bajar considerablemente el desempeño general. el long-term scheduler puede admitir más usuarios de los que pueden caber realmente en memoria. traerlos nuevamente a memoria (swap-in) para continuar su ejecución. Cuando llega un nuevo trabajo al pool de procesos 4. · Interrupciones y terminaciones de E/S. Recuperar el estado del nuevo proceso (recuperar su PCB). l z Pl i i i ambién llamado h .

que especifica los instantes de tiempo en que se aplica la función de selección. lo que también implica sobrecarga. (Rendimiento: trabajos que se procesan por hora). Eficiencia: mantener la CPU ocupada en lo posible el mayor tiempo con procesos de usuario. le puede ser retirada) Generalmente conocida como política de planificación por torneo. Maximizar el número de procesos ejecutados. 3. Características y y y Es útil cuando los procesos de alta prioridad requieren atención rápida. Logra más equidad en el tratamiento de los procesos. Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.Apropiativos y No Apropiativos El planificador es el módulo del sistema operativo que decide qué proceso se debe ejecutar. 7. Minimizar el tiempo de espera de usuarios. 5. Una vez que el proceso pasa al estado de ejecución. El otro es el modo de decisión o esquema de planificación. 2. 4. Uno de ellos es la función de selección que determina qué proceso. Esta política de ejecución para terminación fue implementada en los primeros sistemas de lote (batch). Predecibilidad en la ejecución. Apropiativo (Una vez que se le ha otorgado la cpu a un proceso. cuando se produce una interrupción que lleva a un proceso bloqueado al estado listo o periódicamente. 8. El proceso que se está ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema operativo. para ello usa un algoritmo de planificación que debe cumplir con los siguientes objetivos: Imparcialidad. 6. y y y Significa que los trabajos ³largos´ hacen esperar a los trabajos ³cortos´. Política justa. continúa ejecutando hasta que termina. se bloquean e espera de una E/S o al n solicitar algún servicio del sistema. Tiene su costo en recursos. es importante conocer dos conceptos relacionados. La decisión de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso. . en espera de la cpu. Equilibrio en el uso de los recursos. Antes de comenzar a describir los respectivos algoritmos de planificación. ya que el intercambio de contexto implica sobrecarga y además requiere mantener muchos procesos en el almacenamiento principal. Características 1. Logra hacer más predecibles los tiempos de respuesta puesto que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera. Tiempo de respuesta excelente (por ejemplo: minimizar el tiempo de respuesta para los usuarios interactivos). Hay dos categorías generales: No Apropiativo (Una vez que se le ha otorgado la cpu a un proceso. en función de una interrupción del reloj. no le puede ser retirada) También conocido como cooperative multitasking. de entre los listos. se elige para ejecutar a continuación.

este es agregado a la cola de listos. Consideren el caso donde tenemos una colección de procesos. entonces el procesador estará ocioso. muchos de los dispositivos de E/S estarán ociosos.FCFS y SJF FCFS (First Co e First Served) La política más simple de planificación es la FCFS. Además . éste es asignado al proceso que está en la cabeza de la cola. Por lo tanto. este lo mantiene hasta que espontáneamente lo suelta. Uno de ellos utiliza más CPU que los otros. La implementación de esta política es a través de colas F FO (First-In. Cuando el I proceso CPU-bound ejecuta. y el resto de los procesos requieren más trabajo de E/S ( /O-bound). ya sea porque el proceso finalizó o por algún requerimiento de E/S. En este momento. los procesos I/O-bound pasarán a ejecutar y rápidamente volverán a bloquearse en espera de E/S. El tiempo de espera bajo esta política tiende a ser alto. A medida que un proceso pasa al estado listo. Cuando el proceso que actualmente está ejecutando cesa su ejecución entonces el proceso más viejo en la cola es seleccionado para correr. FCFS puede ocasionar un uso indeficiente tanto del procesador como de los dispositivos de E/S. First-Out). 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 ación 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. Si el proceso CPU-bound se encuentra bloqueado. tiende a favorecer aquellos procesos que requieren más tiempo de CPU (CPU-bound). FCFS es un algoritmo nonpreemptive ó "no apropiativo". los otros procesos esperan. Cuando el proceso en ejecución deje el estado Running. pues una vez que el CPU es asignado a un proceso. Cuando el CPU está libre. Algunos de estos estarán en las colas de los dispositivos de E/S pero eventualmente en algún instante pasarán a la cola de procesos listos.50 Pro edio 2 .

y y Eje plo: favorecimiento de procesos con mucha entrada/salida. Proceso A B C D Promedio Tiempo llegada 0 1 2 3 de Tiemppo de Tiempo de Tiempo de Turnaround Tiempo Servicio Comienzo Finalización Espera 8 4 9 5 0 8 17 12 8 12 26 1 8 12-1=11 26-2=24 17-3=14 14. pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S. llamado quantum o cuanto. La principal decisión de diseño que surge con Round Robin es el tamañoquantum. Establece para la planificación una relación entre proceso y ráfaga de la CPU. y si existiera más de un proceso con igual valor.25 0 8-1=7 17-2=15 12-3=9 10. Este algoritmo presenta una gran ventaja. Si es muy corto. al liberarse la cpu ingresará el proceso con la menor ráfaga de tiempo. pues el tiempo de espera será mucho menor. cada clase ordenada mediante una cola.33 de Prioridades Prioridades estáticas: y Se asigna una prioridad al proceso para toda su ``vida''. pero podemos predecirlos usando la información de los ciclos anteriores ejecutados.Cada proceso tiene asignado un intervalo de tiempo de ejecución.first). el proceso en ejecución es colocado en la cola de procesos listos y el próximo trabajo es seleccionado basado en el esquema FCFS. un algoritmo muy óptimo. hay un . El cambio de prioridad puede reflejar información nueva que se tiene sobre el comportamiento de un proceso.Planificación en SJF El algoritmo ³primero el trabajo más corto´ (shortest ± job . puede reflejar distintos ``status'' de los usuarios. El problema está en conocer la duración del próximo requerimiento de CPU para cada proceso. Cuando ocurre la interrupción. el cpu se ocupa de resolver el proceso con mayor tiempo. el más pequeño primero. Por otro lado. Es decir. pues se aplicaría dentro de este el algoritmo anterior (FCFS). Prioridades diná icas: y y La prioridad de un proceso cambia durante su vida. entonces los procesos se moverán a través del sistema rápidamente. Para gestionar cada cola.Una interrupción de reloj es generada a intervalos periódicos. Pueden usarse clases de prioridad. Ro nd Robin Una manera rápida de reducir la penalización que los procesos cortos sufren con FCFS es usar expropiación basada en un reloj. y Por eje plo. puede usarse round-robin.

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. Actualiza el timer para que interrumpa después del quantum de tiempo. Si el quantum es infinito entonces degenera en CFS. Nuevos procesos son agregados al final de la cola. Por lo tanto quantums muy pequeños deberían evitarse. 3 33 . y toma el proceso que se encuentra en la cabeza de la cola. Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. El desempeño de este algoritmo dependerá del tamaño del quantum.cierto overhead o desperdicio de tiempo envuelto con el manejo de la interrupción de reloj y las funciones de planificación y despacho. Se implementa con una cola I O de procesos. Una alternativa es usar un quantum de tiempo que sea un poco más grande que el iempo t promedio requerido para una interacción típica.