You are on page 1of 15

ALGORITMOS DE PLANIFICACION DE PROCESOS

2.3. ALGORITMOS DE PLANIFICACIN La planificacin de la UCP tiene que ver con el problema de decidir a cul de los procesos que estn en la cola de procesos listos se le asignar la UCP. Se cuenta con varios algoritmos de planificacin de la UCP, algunos de los cuales describiremos en esta seccin. Los distintos algoritmos de planificacin tienen propiedades diferentes y pueden favorecer a un tipo de proceso en lugar de a otro, as que al elegir qu algoritmo se aplicar en una situacin determinada debemos considerar las propiedades de los diversos algoritmos. Para comparar los algoritmos de planificacin de la UCP se han propuesto varios criterios, y las caractersticas que se utilicen para la comparacin pueden representar diferencias considerables en la determinacin del mejor algoritmo; los criterios que se emplean incluyen los siguientes: Utilizacin de la UCP. Queremos que la UCP se mantenga tan ocupada como sea posible. Su utilizacin puede variar de 0 a 100% y en un sistema real debe fluctuar entre el 40% (para un sistema con poca carga) y el 90% (para un sistema con gran carga de trabajo). Productividad. Si la UCP se encuentra ocupada, se est efectuando algn trabajo. Una medida del trabajo es el nmero de procesos que se completan por unidad de tiempo, llamada productividad. Para procesos largos, esta tasa puede ser un proceso por hora; para transacciones ms breves, la productividad puede ser de 10 procesos por segundo. Tiempo de retorno. Desde el punto de vista de un proceso en particular, el criterio ms importante es cunto tiempo tarda en ejecutarse ese proceso. El intervalo entre el momento de ofrecerlo hasta el momento en que termina es el tiempo de retorno, es decir, la suma de los periodos transcurridos esperando entrar en la memoria, esperando en la cola de procesos listos, ejecutndose en la UCP y efectuando la E/S. Tiempo de espera. El algoritmo para la planificacin de la UCP no afecta realmente a la cantidad de tiempo durante el cual un proceso se ejecuta o se lleva a cabo la E/S. El algoritmo afecta nicamente a la cantidad de tiempo que el proceso espera en la cola de procesos listos, de modo que en vez de tener en cuenta el tiempo de retorno, podemos considerar slo el tiempo de espera para cada proceso. Tiempo de respuesta. En un sistema interactivo, es posible que el tiempo de retorno no sea el mejor criterio. Con frecuencia un proceso puede producir alguna salida en los primeros instantes y continuar calculando nuevos resultados mientras se presentan al usuario los resultados anteriores. Por esto, otra medicin es el tiempo transcurrido desde la presentacin de una solicitud hasta que se produce la primera respuesta. Esta medicin, llamada tiempo de respuesta, es la cantidad de tiempo para comenzar a responder, pero no el tiempo necesario para mostrar esa respuesta. El tiempo de retorno generalmente se encuentra limitado por la velocidad del dispositivo de salida.
1

Es deseable maximizar la utilizacin de la UCP y la productividad, y minimizar los tiempos de retorno, de espera y de respuesta; en la mayora de los casos optimizamos el promedio, pero en ocasiones puede ser deseable optimizar los valores mnimos o mximos, en vez del promedio. Por ejemplo, para garantizar que todos los usuarios obtengan un buen servicio podramos minimizar el mximo tiempo de respuesta. Tambin se ha propuesto que, para sistemas interactivos (como los sistemas de tiempo compartido), es ms importante minimizar la varianza en el tiempo de respuesta que minimizar su promedio. Un sistema con tiempo de respuesta razonable y predecible puede considerarse ms deseable que un sistema que en promedio sea ms rpido, pero muy variable. Sin embargo, es poco lo que se ha hecho respecto a los algoritmos para la planificacin de la UCP que minimicen la varianza. A medida que analicemos los distintos algoritmos para la planificacin de la UCP, ilustraremos su funcionamiento. Una ilustracin precisa podra incluir muchos procesos, y cada uno de ellos una secuencia de centenares de rfagas de UCP y de E/S. Para simplificar las ilustraciones, en nuestros ejemplos consideramos slo una rfaga de UCP (en milisegundos). Nuestra medida de comparacin es el tiempo promedio de espera.

2.3.1. PLANIFICACIN SERVICIO POR ORDEN DE LLEGADA Definitivamente, el algoritmo ms sencillo para la planificacin de la UCP es el algoritmo servicio por orden de llegada (FCFS, first -come, first-served). Con este esquema, el proceso que primero solicita la UCP es el primero al que se le asigna. La poltica FCFS se implanta fcilmente con una cola FIFO: cuando un proceso entra en la cola de procesos listos, su PCB se enlaza al final de la cola; cuando la UCP est libre se asigna el proceso colocado al inicio de la cola de procesos listos, y entonces el proceso en ejecucin se elimina de esa misma cola. El cdigo para la planificacin FCFS es sencillo de escribir y comprender. En la poltica FCFS el tiempo promedio de espera es bastante largo, sin embargo. Considere el siguiente conjunto de procesos que llegan en el instante O, donde la duracin de la rfaga de uci se expresa en milisegundos: Proceso P1 P2 P3 Duracin de la Rfaga 24 3 3

Si los procesos llegan en el orden P1, P2 y P3 y se les da servicio por orden de llegada, obtenemos el resultado que se presenta en la siguiente grfica de Gantt:

P1
0 24

P2
27

P3
30

El tiempo de espera es 0 milisegundos para el proceso P1, 24 milisegundos para el proceso P2 y 27 milisegundos para el proceso P3, de manera que el tiempo promedio de espera es (0 + 24 + 27)/3 = 17
2

milisegundos. Sin embargo, si los procesos llegan en el orden P2, P3 y P1, los resultados sern los que se muestran en la siguiente grfica de Gantt:

P2
0 3

P3
6

P1
30

El tiempo promedio de espera es ahora (6 + 0 + 3)/3 = 3 milisegundos, lo que representa una reduccin considerable. Por esto, el tiempo promedio de espera en la poltica FCFS generalmente no es mnimo y puede variar bastante si los tiempos de rfagas de UCP de los procesos varan mucho. Adems, considere el rendimiento de la planificacin FCFS en una situacin dinmica. Suponga que tenemos un proceso limitado por la UCP y varios procesos limitados por E/S. Al pasar los procesos por el sistema, se puede presentar la siguiente situacin: el proceso limitado por la UCP obtendr la UCP y la retendr; durante este tiempo, todos los dems procesos terminarn su E/S y pasarn a la cola de procesos listos, en espera de la UCP. Mientras esperan en la cola de procesos listos, los dispositivos de E/S permanecen inactivos. Finalmente, el proceso limitado por la UCP termina su rfaga de UCP y pasa a un dispositivo de E/S. Todos los procesos limitados por E/S, que tienen rfagas de UCP breves, se ejecutan rpidamente y regresan a las colas de dispositivos de E/S. En este momento la UCP est inactiva. El proceso limitado por la UCP regresar a la cola de procesos listos y se le asignar la UCP. Una vez ms, los procesos limitados por E/S se encuentran en la cola de procesos listos esperando a que termine el proceso limitado por la UCP. Esto se conoce como efecto de convoy, ya que todos los dems procesos esperan a que un proceso de gran tamao salga de la UCP. Este efecto provoca que la UCP y los dispositivos se aprovechen menos que si se permitiera que los procesos ms cortos pasaran antes. El algoritmo de planificacin FCFS es no apropiativo. Una vez que se ha asignado la UCP a un proceso, ste la conserva hasta que desee liberarla, ya sea por terminacin o por solicitud de E/S. El algoritmo FCFS es especialmente problemtico en los sistemas de tiempo compartido, donde es importante que cada usuario reciba una porcin de la UCP a intervalos regulares. Sera desastroso permitir que un proceso retuviera la UCP por un periodo largo.

2.3.2. PLANIFICACIN PRIMERO EL TRABAJO MS BREVE Un enfoque distinto para la planificacin de la UCP es el algoritmo primero el trabajo ms breve (SJF, shortest-job-first). (No empleamos el trmino primero el proceso ms breve porque la mayora de las personas y los textos se refieren a este tipo de disciplina de planificacin como primero el trabajo ms breve.) Este algoritmo asocia a cada proceso la longitud de su siguiente rfaga de UCP. Cuando la UCP est disponible, se le asigna al proceso que tiene la rfaga siguiente de UCP menor. Si dos procesos tienen la misma longitud para la siguiente rfaga de UCP se utiliza la planificacin FCFS para romper el empate.
3

Como ejemplo, considere el siguiente conjunto de procesos, donde la longitud de rfaga de UCP se presenta en milisegundos: Proceso P1 P2 P3 P4 Duracin de la Rfaga 6 8 7 3

Usando la planificacin SJF, planificaramos estos procesos de acuerdo con la siguiente grfica de Gantt:

P4
0 3

P1
9

P3
16

P2
24

El tiempo de espera es tres milisegundos para el proceso P1, 16 milisegundos para el proceso P2 nueve milisegundos para P3 y 0 para P4. De esta manera, el tiempo promedio de espera es (3 + 16 + 9 + 0)/4 = 7 milisegundos. Si usramos la planificacin FCFS, el tiempo promedio de espera sera de 10.25 milisegundos. Puede comprobarse que el algoritmo SJF es ptimo, ya que ofrece el mnimo tiempo promedio de espera para un conjunto de procesos dado. La comprobacin muestra que poniendo un proceso breve antes de uno largo se reduce el tiempo de espera del proceso corto ms de lo que aumenta el tiempo de espera del proceso largo (Figura 2.9). Por tanto, se reduce el tiempo de espera promedio. El problema real con el algoritmo SJF es conocer la longitud de la siguiente solicitud de la UCP. Para la planificacin a largo plazo de (trabajos) en un sistema por lotes, podemos utilizar el tiempo lmite del proceso. De esta manera se motiva a los usuarios a estimar con precisin el tiempo lmite del proceso, ya que un valor menor representa una respuesta ms rpida. (Un valor demasiado bajo ocasionar un error de tipo tiempo lmite excedido y se tendr que ofrecer de nuevo el proceso.) La planificacin SJF se usa frecuentemente en la planificacin de procesos.

Figura 2.9. Comprobacin de que el algoritmo de planificacin SJF es ptimo

Aunque el algoritmo SJF es ptimo, no puede implantarse al nivel de la planificacin a corto plazo de la UCP. No hay manera de conocer la longitud de la siguiente rfaga de UCP, pero se puede tratar de efectuar una aproximacin a la planificacin SJF. Aunque no conocemos la longitud de la siguiente rfaga de UCP, podemos predecir su valor, esperando que sea de longitud similar a las anteriores. As, al calcular una aproximacin de la longitud de la siguiente rfaga de UCP podemos elegir el proceso con la rfaga de UCP prevista ms breve.

En general, la siguiente rfaga de UCP se predice como un promedio exponencial de las longitudes medidas de las rfagas de UCP anteriores. Sea tn la longitud de la ensima rfaga de UCP, y tn+1 nuestro valor previsto para la siguiente rfaga de UCP. Entonces, para , 0<=<=1, se define:

Esta frmula define un promedio exponencial. El valor de t n contiene nuestra informacin ms reciente, y Tn contiene nuestros datos histricos. El parmetro controla la ponderacin de la historia reciente y antigua para nuestra prediccin. Si =0, entonces Tn+1 = Tn, y la historia reciente no tiene efecto (se supone que las condiciones actuales son transitorias); si =1, entonces Tn+1 =Tn y slo tiene importancia la rfaga de UCP ms reciente (se supone que los datos histricos son viejos e irrelevantes). Es ms habitual que = , por lo que la historia reciente y antigua se ponderan de igual manera. La Figura 2.10 muestra un promedio exponencial para = . El valor inicial de T0 puede definirse como una constante o como un promedio global del sistema. Para comprender el comportamiento del promedio exponencial, podemos desarrollar la frmula para Tn+1 sustituyndolo por Tn; para encontrar

Puesto que tanto como (1 - ) son menores o iguales a 1, cada trmino sucesivo tiene menor peso que su predecesor

Figura 2.10 Prediccin de la siguiente rfaga de UCP utilizando un promedio exponencial.

El algoritmo SJF puede ser apropiativo o no apropiativo. La alternativa se plantea cuando un nuevo proceso llega a la cola de procesos listos mientras se est ejecutando otro proceso. El nuevo proceso puede tener una rfaga de UCP menor que lo que resta del proceso que se ejecuta en ese momento. Un algoritmo SJF apropiativa desplazar al proceso que se ejecuta, mientras que un algoritmo SJF no apropiativo permitir
5

que el proceso que se ejecuta termine su rfaga de UCP. La planificacin SJF apropiativa en ocasiones se denomina planificacin primero el que tenga el menor tiempo restante (shortest remaining-time-first). Como ejemplo, considere los cuatro procesos siguientes, donde la longitud de las rfagas de UCP se proporciona en milisegundos: Proceso P1 P2 P3 P4 Instante de llegada 0 1 2 3 Duracin de la Rfaga 8 4 9 5

Si los procesos llegan a la cola de procesos listos en los tiempos mostrados y necesitan los tiempos de rfaga indicados, entonces la planificacin SJF apropiativa que resulta se muestra en la siguiente grfica de Gantt:

P1
0 1

P2
5

P4
10

P1
17

P3
26

El proceso P1 comienza en el instante 0, ya que es el nico proceso en la cola. El proceso P2 llega en el instante 1. El tiempo restante para el proceso P1 (siete milisegundos) es mayor que el tiempo que requiere el proceso P2 (cuatro milisegundos), por lo que el proceso P1 se expulsa y el proceso P2 se planifica. El tiempo promedio de espera para este ejemplo es ((10 - 1) + (1 - 1) + (17 - 2) + (5 - 3))/4 = 26/4 = 6.5 milisegundos. El resultado de una planificacin SJF no apropiativa sera 8.75 milisegundos.

2.3.3. PLANIFICACIN POR PRIORIDADES El algoritmo SJF es un caso especial del algoritmo general para la planificacin por prioridades. Se asocia una prioridad a cada proceso y la UCP se asigna al de mayor prioridad. Los procesos con igual prioridad se planifican en orden FCFS. Un algoritmo SJF es sencillamente un algoritmo de prioridades, donde la prioridad (p) es la inversa de la siguiente rfaga (prevista) de UCP (T): p=1/T. Si la rfaga de UCP es mayor, la prioridad ser menor y viceversa. Observe que analizamos la planificacin en trminos de una alta prioridad y una baja prioridad. Las prioridades generalmente corresponden a un intervalo fijo de nmeros, como 0 a 7 o 0 a 4095. Sin embargo, no existe ningn consenso respecto a si 0 es la prioridad ms alta o la ms baja. Algunos sistemas emplean nmeros bajos para representar una prioridad baja; otros utilizan nmeros bajos para representar una prioridad alta. Esta diferencia puede prestarse a confusiones. En este libro supondremos que los nmeros bajos representan prioridades altas.

Como ejemplo, considere el siguiente conjunto de procesos, que se supone llegaron en el instante 0, en el orden P1, P2,..., P5 y cuyas longitudes de rfaga de UCP se indican en milisegundos: Proceso P1 P2 P3 P4 P5 Duracin de la Rfaga 10 1 2 1 5 Prioridad 3 1 3 4 2

Usando la planificacin por prioridades, planificaramos estos procesos de acuerdo con la siguiente grfica de Gantt:

P2
0 1

P5
6

P1
16

P3
18

P4
19

El tiempo promedio de espera es de 6.2 milisegundos. Las prioridades pueden definirse interna o externamente. Las prioridades definidas internamente utilizan alguna cantidad o cantidades mensurables para calcular la prioridad del proceso. Por ejemplo, para calcular prioridades se han utilizado los lmites de tiempo, requisitos de memoria, el nmero de archivos abiertos y la tasa de intervalos entre rfagas de E/S y de UCP. Las prioridades externas se fijan empleando criterios ajenos al sistema operativo, como la importancia del proceso, el tipo y cantidad de fondos que se pagan por utilizar el computador, el departamento que patrocina el trabajo y otros factores, con frecuencia de carcter poltico. La planificacin por prioridades puede ser apropiativa o no apropiativa. Cuando un proceso llega a la cola de procesos listos, su prioridad se compara con la del proceso en ejecucin. Un algoritmo apropiativo para la planificacin por prioridades se apropiar de la UCP si la prioridad del proceso recin llegado es mayor que la del proceso en ejecucin. Un algoritmo no apropiativo para la planificacin por prioridades nicamente dejar al nuevo proceso al inicio de la cola de procesos listos. Un serio problema de los algoritmos para la planificacin por prioridades es el bloqueo indefinido o inanicin. Un proceso que est listo para ejecutarse pero no obtiene la UCP puede considerarse como bloqueado, en espera de la UCP. Un algoritmo para la planificacin por prioridades puede dejar a un proceso de baja prioridad esperando indefinidamente a la UCP. En un sistema de computacin con gran carga, un flujo constante de procesos de alta prioridad puede evitar que un proceso de baja prioridad obtenga la UCP. Por lo general suceder una de estas dos cosas: o el programa finalmente se ejecuta (a las 2 AM del domingo, cuando por fin disminuye la carga del sistema) o el sistema de computacin falla y pierde todos los procesos de baja prioridad. (Segn algunos rumores, cuando dieron de baja el computador IBM del MIT en
7

1973, encontraron un proceso de baja prioridad que se haba enviado en 1967 y que todava no se haba ejecutado.) Una solucin para el problema del bloqueo indefinido de los procesos de baja prioridad es el envejecimiento, tcnica por la cual aumenta gradualmente la prioridad de los procesos que esperan durante mucho tiempo en el sistema. Por ejemplo, si las prioridades varan entre 0 (baja) y 127 (alta), podramos incrementar en uno la prioridad de un proceso en espera cada 15 minutos. Tarde o temprano, incluso un proceso con prioridad inicial 0 podra alcanzar la prioridad ms alta del sistema y ejecutarse. De hecho, no costara ms de 32 horas que un proceso pasara de prioridad 0 a prioridad 127.

2.3.4. PLANIFICACIN CIRCULAR El algoritmo de planificacin circular (RR, round-robin) est diseado especialmente para sistemas de tiempo compartido. Se define una pequea unidad de tiempo, llamada cuanto de tiempo o porcin de tiempo, que generalmente vara entre 10 y 100 milisegundos. La cola de procesos listos se trata como una cola circular, el planificador de la UCP la recorre asignando la UCP a cada proceso por un intervalo de hasta un cuanto de tiempo. Para poner en prctica la planificacin mantenemos la cola de procesos listos como una cola primero que entra, primero que sale (FIF0). Los nuevos procesos se agregan al final de la cola de procesos listos. El planificador de la UCP toma el primer proceso de la cola, programa un cronmetro para que interrumpa despus de un cuanto de tiempo y despacha el proceso. Entonces suceder una de estas dos cosas: el proceso puede tener una rfaga de UCP menor que un cuanto de tiempo, en cuyo caso el proceso liberar voluntariamente a la UCP y el planificador continuar con el siguiente proceso de la cola de procesos listos. Por otra parte, si la rfaga de UCP del pro ceso en ejecucin es mayor que un cuanto de tiempo, el cronmetro se activar y provocar una interrupcin para el sistema operativo. Se ejecutar un cambio de contexto y el proceso se colocar al final de la cola de procesos listos. El planificador de la UCP seleccionar entonces el siguiente proceso de la cola. Sin embargo, el tiempo promedio de espera es bastante grande en la poltica RR. Considere el siguiente conjunto de procesos que llegan en el instante 0, donde la longitud de la rfaga de UCP se expresa en milisegundos: Proceso P1 P2 P3 Duracin de la Rfaga 24 3 3

Si usamos un cuanto de tiempo de cuatro milisegundos, el proceso P1 obtiene los primeros cuatro milisegundos. Puesto que necesita otros 20 milisegundos, se expulsa tras el primer cuanto de tiempo y la
8

UCP se otorga a P2 el siguiente proceso de la cola. Como el proceso P2 no requiere cuatro milisegundos, sale antes de que termine el cuanto de tiempo. Entonces se proporciona la UCP al siguiente proceso, P3 Una vez que cada proceso ha recibido un cuanto de tiempo, se devuelve la UCP al proceso P1 durante un cuanto de tiempo adicional. El resultado obtenido de la planificacin RR es:

P1
0 4

P2
7

P3
10

P1
14

P1
18

P1
22

P1
26

P1
30

El tiempo promedio de espera es 17/3 = 5.66 milisegundos. En el algoritmo de planificacin RR, la UCP no se asigna a ningn proceso por ms de un cuanto consecutivo de tiempo. Si la rfaga de UCP de un proceso excede de un cuanto, se expulsa y regresa a la cola de procesos listos. El algoritmo de planificacin RR es apropiativo. Si existen n procesos en la cola de procesos listos y el cuanto de tiempo es q, cada proceso recibe 1/n de tiempo de la UCP en trozos de q unidades de tiempo como mximo. Ningn proceso debe esperar ms de (n - 1) x q unidades de tiempo antes de recibir su siguiente cuanto. Por ejemplo, si hay cinco procesos, con un cuanto de tiempo de 20 milisegundos, entonces cada proceso recibir hasta 20 milisegundos cada 100 milisegundos. El rendimiento del algoritmo RR depende en gran medida del tamao del cuanto de tiempo. En un extremo, si el cuanto es muy grande (infinito), la poltica RR es la misma que la FCFS. Si el cuanto de tiempo es muy pequeo digamos un microsegundo), el enfoque RR se llama compartir el procesador, y para los usuarios parece (en teora) que cada uno de los n procesos tiene su propio procesador que se ejecuta a 1/n de la velocidad del procesador real. Este enfoque se utiliz en el computador de Control Data Corporation (CDC) para implantar 10 procesadores perifricos con slo un equipo de hardware y 10 conjuntos de registros. El hardware ejecuta una instruccin para un conjunto de registros y luego pasa al siguiente. Este ciclo contina, dando como resultado 10 procesadores lentos en vez de uno rpido. (En realidad, como el procesador era mucho ms rpido que la memoria y cada instruccin hacan referencia a ella, los procesadores no eran mucho ms lentos de lo que habra sido un solo procesador.) Sin embargo, en el software tenemos que considerar el efecto del cambio de contexto en el rendimiento de la planificacin RR. Supongamos que tenemos slo un proceso de 10 unidades de tiempo. Si el cuanto de tiempo es de 12 unidades de tiempo, el proceso termina en menos de un cuanto, sin tiempo de procesamiento adicional; pero si el cuanto de tiempo es de seis unidades, el proceso requiere 2 cuantos, produciendo un cambio de contexto. Si el cuanto de tiempo es una unidad, ocurrirn nueve cambios de contexto, lo que har ms lenta la ejecucin del proceso (Figura 2.11).

Por lo anterior, queremos que el cuanto de tiempo sea grande respecto al tiempo de cambio de contexto. Si el tiempo de cambio de contexto es aproximadamente 10% del cuanto, entonces en el cambio de contexto se invierte cerca de un 10% del tiempo de la UCP. El tiempo de retorno tambin depende del tamao del cuanto de tiempo. Como podemos ver en la Figura 2.12, el tiempo de retorno promedio de un conjunto de procesos no necesariamente mejora al aumentar el cuanto de tiempo. En general, el tiempo de retomo promedio puede mejorar si la mayora de los procesos terminan su siguiente rfaga de UCP en un solo cuanto de tiempo. Por ejemplo, dados tres procesos de 10 unidades de tiempo cada uno y un cuanto de tiempo de una unidad, el tiempo de retorno promedio es 29, pero si el cuanto es 10, el tiempo de retorno promedio se reduce a 20. Si se aade el tiempo de cambio de contexto, el tiempo de retorno promedio aumenta para un cuanto de tiempo ms pequeo, puesto que se requieren ms cambios de contexto.

Figura 2.12 El tiempo de retorno promedio vara con el cuanto de tiempo.

Por otra parte, si el cuanto de tiempo es demasiado grande, la planificacin RR degenera hasta convertirse en una poltica FCFS. Una regla emprica es que el 80% de las rfagas de UCP deben ser menores que el cuanto de tiempo.

2.3.5. PLANIFICACIN DE COLAS DE MLTIPLES NIVELES Se ha creado otra clase de algoritmos de planificacin para aquellas situaciones donde los procesos se pueden clasificar fcilmente en distintos grupos.
10

Por ejemplo, una divisin habitual consiste en diferenciar los procesos de primer plano (interactivos) de los procesos de segundo plano (por lotes). Estos dos tipos de procesos tienen requisitos de tiempo de respuesta bastante diferentes, porque pueden presentar distintas necesidades de planificacin. Adems, los procesos de primer plano pueden tener una prioridad superior (definida externamente) a la de los procesos de segundo plano. Un algoritmo de planificacin de colas de mltiples niveles divide la cola de procesos listos en diversas colas (Figura 2.13). Los procesos se asignan en forma permanente a una cola, generalmente a partir de alguna propiedad del proceso, como puede ser el tamao de la memoria o el tipo de proceso. Cada cola tiene su propio algoritmo de planificacin; por ejemplo, pueden emplearse colas distintas para los procesos de primer y segundo planos. La cola de primer plano puede planificarse con un algoritmo RR, mientras que la de segundo plano se planifica con un algoritmo FCFS. Debe existir adems una planificacin entre las colas, la cual generalmente es una planificacin apropiativa de prioridad fija. Por ejemplo, la cola de procesos de primer plano puede tener prioridad absoluta sobre la cola de procesos de segundo plano. Veamos un ejemplo de algoritmo de planificacin de colas de mltiples niveles con cinco colas: Procesos del sistema Procesos interactivos Procesos interactivos de edicin Procesos por lotes Procesos de estudiantes Cada cola tiene prioridad absoluta sobre las colas de menor prioridad. Por ejemplo, no podra ejecutarse ningn proceso de la cola de procesos por lotes a menos que las colas de procesos del sistema, procesos interactivos y procesos interactivos de edicin estuvieran vacas. Si un proceso interactivo de edicin entrara en la cola de procesos listos durante la ejecucin de un proceso por lotes, este ltimo se expulsara.

Figura 2.13 Planificacin de colas de mltiples niveles.

Otra posibilidad es utilizar una porcin de tiempo para las colas. Cada cola recibira cierta porcin del tiempo de la UCP, la cual se planificara entre los procesos de su cola. Por ejemplo, en el caso de las colas de primer
11

y segundo planos, la cola de primer plano puede recibir el 80% del tiempo de la UCP para la planificacin RR de sus procesos, mientras que la cola de segundo plano recibe el 20% de la UCP para distribuirlo entre sus procesos de manera FCFS.

2.3.6. PLANIFICACIN DE COLAS DE MLTIPLES NIVELES CON REALIMENTACIN En un algoritmo para la planificacin de colas de mltiples niveles normalmente los procesos se asignan de manera permanente a una cola al entrar al sistema y no se mueven a otras colas. Por ejemplo, si hay colas diferentes para los procesos de primer y segundo planos, no cambian de una cola a otra, ya que los procesos no modifican su naturaleza de primer o segundo planos. Esta configuracin tiene la ventaja de provocar poco gasto de procesamiento adicional durante la planificacin, pero es inflexible. Sin embargo, la planificacin de colas de mltiples niveles con realimentacin permite a un proceso moverse de una cola a otra. La idea es separar los procesos con diferentes caractersticas en cuanto a rfagas de la UCP. Si un proceso utiliza demasiado tiempo de la UCP, se pasar a una cola de menor prioridad. Este esquema deja a los procesos limitados por E/S y a los procesos interactivos en las colas de mayor prioridad. De igual manera, si un proceso espera demasiado tiempo en una cola de menor prioridad se puede mover a una de mayor prioridad. Esta es una forma de envejecimiento que evitara el bloqueo indefinido. Por ejemplo, considere un planificador de colas de mltiples niveles con realimentacin con tres colas, numeradas del 0 al 2 (Figura 2.14). El planificador ejecutar primero todos los procesos de la cola 0. Slo cuando sta se encuentre vaca, se ejecutarn los procesos de la cola 1. En forma similar, los procesos de la cola 2 slo se ejecutarn si las colas 0 y 1 estn vacas. Un proceso que llegue a la cola 1 expulsar a un proceso de la cola 2. A su vez, un proceso de la cola 1 ser expulsado por un proceso que llegue a la cola 0.

Figura 2.14 Colas de mltiples niveles con realimentacin.

A los procesos que entran a la cola de procesos listos se les coloca en la cola 0, y se les asigna un cuanto de tiempo de ocho milisegundos. Si no terminan en este lapso, se mueven al final de la cola 1; si la cola 0 est vaca, se asigna un cuanto de tiempo de 16 milisegundos al proceso que se encuentre al inicio de la cola 1. Si no termina, es expulsado y pasa a la cola 2. Los procesos de esta cola se ejecutan sobre una base FCFS, nicamente cuando estn vacas las colas 0 y 1.
12

Este algoritmo de planificacin da mayor prioridad a cualquier proceso con una rfaga de UCP de ocho milisegundos o menos. Este proceso recibir rpidamente la UCP, terminar su rfaga de UCP y pasar a su siguiente rfaga de E/S. Los procesos que requieren ms de ocho, pero menos de 24 milisegundos, tambin son atendidos con rapidez, aunque con menor prioridad que los procesos ms breves. Los procesos de larga duracin descienden automticamente a la cola 2 y son atendidos en orden de llegada utilizando cualquier ciclo de la UCP que no ocupe las colas 0 y 1. Por lo general, un planificador de colas de mltiples niveles con realimentacin se define con los siguientes parmetros El nmero de colas El algoritmo de planificacin para cada cola El mtodo utilizado para determinar cundo promover un proceso a una cola de mayor prioridad El mtodo utilizado para determinar cundo degradar un proceso a una cola de menor prioridad El mtodo utilizado para determinar a cul cola entrar un proceso cuando necesite servicio

La definicin de un planificador de colas de mltiples niveles con realimentacin lo convierte en el algoritmo de planificacin de la UCP ms general. Se puede configurar para ajustarse a un sistema especfico que se est diseando, pero por desgracia tambin requiere alguna forma de seleccin de valores para todos los parmetros que definan el mejor planificador. Aunque las colas de mltiples niveles con realimentacin son el esquema ms general, tambin son el ms complejo.

2.4. PLANIFICACIN DE PROCESADORES MLTIPLES Hasta ahora nuestro anlisis se ha centrado en los problemas de la planificacin de la UCP en un sistema con un solo procesador. Si hay mltiples UCP, el problema de planificacin se vuelve ms complejo. Se han probado varias posibilidades y, como hemos visto en la planificacin de la UCP con un solo procesador, no hay una solucin nica que sea la mejor. A continuacin analizaremos brevemente algunos de los asuntos relacionados con la planificacin de procesadores mltiples. Uno de los factores principales es el tipo de procesadores que entran en juego, los cuales pueden ser idnticos (un sistema homogneo) o distintos (un sistema heterogneo). Si los procesadores son diferentes, las opciones son relativamente limitadas. Cada procesador tiene su propia cola y su propio algoritmo de planificacin. Los procesos estn tipificados intrnsecamente por su estructura, y deben ejecutarse en un procesador determinado; un programa escrito en lenguaje ensamblador VAX no puede ejecutarse en un IBM Series/1; hay que ejecutarlo en un VAX. As, los procesos se restringen a ciertos procesadores y cada procesador puede planificarse a s mismo. Si hay varios procesadores idnticos, pueden compartir cargas. Sera posible proporcionar una cola distinta a cada procesador, pero en esta situacin un procesador podra estar inactivo, con una cola vaca, mientras los dems procesadores estuvieran muy activos. Para evitarlo utilizamos una cola comn de procesos listos; todos los procesos entran a esta cola y se planifican en cualquier procesador disponible. Con este esquema puede emplearse una de dos estrategias d planificacin.
13

En una de ellas, cada procesador se planifica a s mismo. Cada procesador examina la cola comn de procesos listos y selecciona un proceso para ejecucin. Si tenemos varios procesadores que tratan de acceder a una estructura de datos comn y actualizarla, hay que programar con cuidado cada procesador. Debemos asegurar que dos procesadores no elijan el mismo proceso, y que no se pierdan procesos de la cola. La otra estrategia evita este problema estableciendo un procesador como planificador para los dems, creando as una estructura amo-esclavo, esto es, el multiprocesamiento asimtrico.

ACTIVIDADES A DESARROLLAR
1. Considere el siguiente conjunto de procesos, cuyas longitudes de rfaga de UCP se expresan en milisegundos: Duracin de Proceso Prioridad la Rfaga P1 P2 P3 P4 P5 10 1 2 1 5 3 1 3 4 2

Se supone que los procesos llegaron en el orden P1, P2, P3, P4, P5 todos en el instante 0. a) Dibuje cuatro grficas de Gantt que ilustren la ejecucin de estos procesos utilizando la planificacin FCFS, SJF, una prioridad no apropiativa (un menor nmero de prioridad representa una prioridad mayor) y RR (cuanto = 1). b) Cul es el tiempo de retomo de cada proceso para cada uno de los algoritmos de planificacin del apartado a)? c) Cul es el tiempo de espera de cada proceso para cada uno de los algoritmos de planificacin del apartado a)? d) Cul de los esquemas de planificacin del apartado a) ofrece el menor tiempo promedio de espera (para todos los procesos)? 2. Suponga que los procesos siguientes llegan para su ejecucin en los momentos indicados. Cada proceso se ejecutar en el tiempo indicado. Al responder a estas preguntas, utilice la planificacin no apropiativa y base todas sus decisiones en la informacin que tenga en el momento de tomar la decisin. Instante Duracin de Proceso de llegada la Rfaga P1 P2 P3 0.0 0.4 1.0 8 4 1

a) Cul es el tiempo de retorno promedio para estos procesos con el algoritmo de planificacin FCFS? b) Cul es el tiempo de retorno promedio para estos procesos con el algoritmo de planificacin SJF?
14

c)

Supuestamente, el algoritmo de planificacin SJF mejora el rendimiento, pero observe que decidimos ejecutar el proceso P1 en el instante 0 porque no sabamos que pronto llegaran dos procesos ms breves. Calcule cul sera el tiempo de retorno total promedio si la UCP estuviera inactiva durante la primera unidad de tiempo y luego se aplicara la planificacin SJF. Recuerde que los procesos P1 y P2 estn en espera durante este periodo de inactividad, por lo que puede aumentar su tiempo de espera. A este algoritmo se le podra conocer como planificacin con conocimiento del futuro.

3. Cinco trabajos por lote, A-E, llegan a un centro de cmputo casi al mismo. Tienen tiempo estimados de ejecucin de 10, 6, 2, 4 y 8 minutos. Sus prioridades (determinadas en forma externa) son de 3, 5, 2, 1 y 4, respectivamente, siendo 5 la mxima prioridad. Para cada uno de los siguientes algoritmos de planificacin, determine el tiempo promedio de retorno a cada proceso. Ignore el costo excesivo de la alternancia entre procesos. A. Round robin. B. Planificacin por prioridad. C. Dar servicio primero al que llego en primer lugar (se ejecuta en el orden 10, 6, 2, 4 y 8). D. En primer lugar el trabajo ms corto.En A, suponga que el sistema es multiprogramado y que cada tarea obtiene la porcin justa de la CPU. Para B y D, suponga que slo se ejecuta un trabajo a la vez, hasta que termina. Todos los trabajos tienen limitaciones de uso de la CPU. 4. Se tiene el siguiente conjunto de procesos: Proceso P1 P2 P3 P4 P5 Duracin de la Rfaga 8 2 5 4 9 Prioridad 3 2 3 0 1 Instante de llegada 0 1 3 4 6

Nota: Usar la columna prioridad sola para la planificacin por prioridades. Calcular el tiempo promedio de espera (considere algoritmos apropiativos) para: E. Planificacin del trabajo del ms corto primero, SJF F. Planificacin por prioridades G. Planificacin circular, quantum=3

15

You might also like