Sunteți pe pagina 1din 12

Sistemas Operativos  Planicacin de procesos

Gunnar Wolf 22 de febrero de 2013

ndice
1. Tipos de planicacin
1.1. Tipos de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Midiendo la respuesta . . . . . . . . . . . . . . . . . . . . . . . . Primero llegado, primero servido (FCFS ) . . Ronda (Round Robin ) . . . . . . . . . . . . . El proceso ms corto a continuacin (SPN) . Retroalimentacin multinivel (FB) . . . . . . Ronda egosta (SRR) . . . . . . . . . . . . . . Mtodos hbridos . . . . . . . . . . . . . . . . Mtodos dependientes del estado y prioridad Mtodos de prioridad externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 6

3 4

2. Algoritmos de planicacin
2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8.

7 7 9 11 11 12 12 12

3. Planicacin de multiprocesadores y en tiempo real 4. Planicacin de hilos 5. Recursos adicionales

12 12 12

1. Tipos de planicacin
La planicacin de procesos se reere a cmo determina el sistema operativo al rden en que ir cediendo el uso del procesador a los procesos que lo vayan solicitando, y a las polticas que emplear para que el uso que den a dicho tiempo no sea excesivo respecto al uso esperado del sistema. Podemos hablar de tres tipos principales de planicacin:

A largo plazo

Decide qu procesos sern los siguientes en ser iniciados. Este tipo de planicacin era el ms frecuente en los sistemas de lotes (principalmente aquellos con spool ) y multiprogramados en lotes; las decisiones 1

eran tomadas principalmente considerando los requisitos pre-declarados de los procesos y los que el sistema tena libres al terminar algn otro proceso. La planicacin a largo plazo puede llevarse a cabo con periodicidad de una vez cada varios segundos, minutos e inclusive horas. En los sistemas de uso interactivo, casi la totalidad de los que se usan hoy en da, este tipo de planicacin no se efecta, dado que es tpicamente el usuario quien indica expresamente qu procesos iniciar.

Figura 1: Planicador a largo plazo

A mediano plazo

Decide cules procesos es conveniente bloquear en determinado momento, sea por escacez/saturacin de algn recurso (como la memoria primaria) o porque estn realizando alguna solicitud que no puede satisfacerse momentaneamente; se encarga de tomar decisiones respecto a los procesos conforme entran y salen del estado de bloqueado (esto es, tpicamente, estn a la espera de algn evento externo o de la nalizacin de transferencia de datos con algn dispositivo). En algunos textos, al planicador a mediano plazo se le llama agendador (scheduler ).

Figura 2: Planicador a mediano plazo, o agendador

A corto plazo

Decide cmo compartir momento a momento al equipo entre todos los procesos que requieren de sus recursos, especialmente el procesador. La planicacin a corto plazo se lleva a cabo decenas de veces por 2

segundo (razn por la cual debe ser cdigo muy simple, eciente y rpido); es el encargado de planicar los procesos que estn listos para ejecucin. En algunos textos, al planicador a corto plazo se le llama despachador (dispatcher ).

Figura 3: Planicador a corto plazo, o despachador En esta seccin nos ocuparemos particularmente el planicador a corto plazo, y en segundo trmino del planicador a mediano plazo.

1.1.

Tipos de proceso

Como ya hemos visto, los procesos tpicamente alternan entre rfagas (periodos, bursts ) en que realizan principalmente cmputo interno (estn limitados por CPU, CPU-bound ) y otras en que la atencin est puesta en transmitir los datos desde o hacia dispositivos externos (estn limitados por entrada-salida, I/O-bound ). Dado que cuando un proceso se suspende para realizar entradasalida deja de estar listo (y pasa a estar bloqueado ), y desaparece de la atencin del planicador a corto plazo, en todo momento podemos separar los procesos que estn en ejecucin y listos en:

Procesos largos

Aquellos que por mucho tiempo 1 han estado en listos o en ejecucin, esto es, procesos que estn en una larga rfaga limitada por CPU.

Procesos cortos

Aquellos que, ya sea que en este momento 2 estn en una rfaga limitada por entrada-salida y requieran atencin meramente ocasional del procesador, o tienden a estar bloqueados esperando a eventos (como los procesos interactivos).

Tpicamente buscaremos dar un tratamiento preferente a los procesos cortos, en particular a los interactivos. Cuando un usuario est interactuando con un proceso, si no tiene una respuesta inmediata a su interaccin con el equipo (sea proporcionar comandos, recibir la respuesta a un teclazo o mover el puntero en el GUI) su percepcin ser la de una respuesta degradada.
1 Cunto es mucho? Depender de las polticas generales que denamos para el sistema 2 Y tambin, este momento debe ser interpretado con la granularidad acorde a nuestro
sistema

1.2.

Midiendo la respuesta

Resulta intuitivo que cada patrn de uso del sistema debe seguir polticas de planicacin distintas. Por ejemplo, en el caso de un proceso interactivo, buscaremos ubicar al proceso en una cola preferente (para obtener un tiempo de respuesta ms gil, para mejorar la percepcin del usuario), pero en caso de sufrir demoras, es preferible buscar dar una respuesta consistente, an si la respuesta promedio es ms lenta. Esto es, si a todas las operaciones sigue una demora de un segundo, el usuario sentir menos falta de control si en promedio tardan medio segundo, pero ocasionalmente hay picos de cinco. Para este tema, en vez de emplear unidades temporales formales (p.ej. fracciones de segundo), es comn emplear quantums y ticks. Esto es en buena medida porque, si bien en el campo del cmputo las velocidades de acceso y uso efectivo cambian constantemente, los conceptos y las deniciones permanecen. Adems, al ser ambos parmetros ajustables, una misma implementacin puede sobrevivir ajustndose a la evolucin del hardware.

Tick

Quantum

Una fraccin de segundo durante la cual se puede realizar trabajo til. Es una medida caprichosa y arbitraria; en Linux (a partir de la versin 2.6.8), un tick dura un milisegundo, en Windows, entre 10 y 15 milisegundos. El tiempo mnimo que se permitir a un proceso el uso del procesador. En Windows, dependiendo de la clase de proceso que se trate, un quantum durar entre 2 y 12 ticks (esto es, entre 20 y 180 ms), y en Linux, entre 10 y 200 ticks (o milisegundos).

Qu mecanismos o mtricas podemos emplear para medir el comportamiento del sistema bajo determinado planicador? Partamos de los siguientes conceptos, para un proceso p que requiere de un tiempo t de ejecucin:

Tiempo de respuesta (T )

Cunto tiempo total es necesario para completar el trabajo pendiente de un proceso p, incluyendo el tiempo que est inactivo esperando ejecucin (pero est en la cola de procesos listos). Tambin referido como tiempo perdido. Del tiempo de respuesta total, cunto tiempo p est listo y esperando ejecutar. Desde la ptica de p, desearamos que E 0
T t

Tiempo en espera (E = T t) Tiempo de penalizacin (P


= la cual p estuvo en espera.

Fraccin del tiempo de respuesta durante

t Proporcin de respuesta (R = T )

Inverso de P . Fraccin del tiempo de respuesta durante la cual p pudo ejecutarse.

Para referirnos a un grupo de procesos con requisitos similares, todos ellos requiriendo de un mismo tiempo t, nos referiremos a T (t), E (t) = T (t) t, t) t P (t) = T ( y R(t) = T ( t t) . Adems de estos tiempos, expresados en relacin al tiempo efectivo de los diversos procesos del sistema, tenemos tambin: 4

Tiempo ncleo o

Tiempo que pasa el sistema en espacio de ncleo, incluyendo el empleado en decidir e implementar la poltica de planicacin y los cambios de contexto.

kernel

Tiempo desocupado (idle ) Utilizacin del CPU

Tiempo en que la cola de procesos listos est vaca y no puede realizarse ningn trabajo.

trabajo til. Si bien conceptualmente podemos ubicar dicha utilizacin


entre 0 y 100 %, en sistemas reales se ha observado (Silberschatz, p.179) que se ubica en un rango entre el 40 y el 90 %.

Porcentaje del tiempo en que el CPU est realizando

Por ejemplo, si llegan a la cola de procesos listos: Proceso A B C D Ticks 70 30 120 40 Llegada 0 20 60 200

ticks, y la duracin de cada quantum es de 50 ticks, en un ordenamiento de


ronda,3 tendramos:

Si el tiempo que toma al sistema efectuar un cambio de contexto es de 20

Figura 4: Ejecucin de cuatro procesos con quantums de 50 ticks y cambios de contexto de 20 ticks Si considerramos al tiempo ocupado por el ncleo como un proceso ms, cuyo trabajo en este espacio de tiempo naliz junto con los dems,4 tendramos por resultado:
3 Claro est, veremos este ordenamiento en breve. 4 Normalmente no consideramos al ncleo al hacer
todo el trabajoo que hace puede verse como

burocracia ante los resultados deseados del sistema

este clculo, dado que en este mbito

Proceso A B C D Ncleo

t 70 30 120 40 100

T 210 80 320 140 400

E 140 50 140 100 300

P 3.0 2.66 2.66 3.5 4.0

R 0.33 0.37 0.37 0.28 0.25

Tomemos en cuenta que, para obtener T , se parte del momento en que el proceso lleg a la cola, no el punto de inicio de nuestra lnea de tiempo. Asumimos en este caso que el ncleo llega tambin en 0. Respecto al patrn de llegada y salida de los procesos, lo manejaremos tambin en base a una proporcin. Si tenemos una frecuencia de llegada promedio de nuevos procesos a la cola de procesos listos , y el tiempo de servicio requerido promedio , denimos el valor de saturacin como = . Cuando = 0, nunca llegan nuevos procesos, por lo cual nuestro sistema estar desocupado. Cuando = 1, los procesos son despachados al mismo ritmo al que van llegando. Cuando > 1, el ritmo de llegada de procesos es mayor que la velocidad a la cual la computadora puede darles servicio, con lo cual la cola de procesos listos tender a crecer (y la calidad de servicio, la proporcin de respuesta R, para cada proceso se decrementar).

2. Algoritmos de planicacin
El planicador a corto plazo puede ser invocado cuando un proceso se encuentra en algunas de las cuatro siguientes circunstancias: 1. Pasa de estar ejecutando a estar en espera (por ejemplo, por solicitar una operacin de E/S, esperar a la sincronizacin con otro proceso, etc.) 2. Pasa de estar ejecutando a estar listo (por ejemplo, al ocurrir una interrupcin 3. Deja de estar en espera a estar listo (por ejemplo, al nalizar la operacin de E/S que solicit) 4. Finaliza su ejecucin, y pasa de ejecutando a terminado En el primer y cuarto casos, el sistem operativo siempre tomar el control; un sistema que opera bajo multitarea preventiva implementar tambin el segundo y tercer casos, mientras que uno que opera bajo multitarea cooperativa no necesariamente reconocer dichos estados. Ahora, para los algoritmos a continuacin, recordemos que en este caso estamos hablando nicamente del despachador. Un proceso siempre abandonar la cola de procesos listos al requerir de un servicio del sistema. Para todos los ejemplos a continuacin, asumamos que los tiempos estn dados en ticks ; no nos preocupa en este caso a cunto tiempo de reloj estos equivalen, sino el rendimiento relativo del sistema entero ante una carga dada. Revisemos, pues, los principales algoritmos de planicacin. 6

2.1.

Primero llegado, primero servido (

FCFS )

mnima lgica posible: Cada proceso se ejecuta en el rden en que fue llegando, y hasta que suelta el control. El despachador es muy simple, bsicamente una cola FIFO. Consideremos los siguientes procesos: (Finkel 1988, p.35) Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

El esquema ms simple de planicacin es el Primero llegado, primero servido (First come, rst serve, FCFS ). Este es un mecanismo cooperativo, con la

t
3 5 2 5 5 4

Inicio 0 3 8 10 15

Fin 3 8 10 15 20

T
3 7 7 6 8 6.2

E
0 2 5 1 3 2.2

P
1 1.4 3.5 1.2 1.6 1.74

Figura 5: Primero llegado, primero servido (FCFS) Si bien un esquema FCFS reduce al mnimo la sobrecarga administrativa (que incluye tanto al tiempo requerido por el planicador para seleccionar al siguiente proceso como el tiempo requerido para el cambio de contexto), el rendimiento percibido por los ltimos procesos en llegar (o por procesos cortos llegados en un momento inconveniente) resulta inaceptable. Este algoritmo dar servicio y salida a todos los procesos siempre que 1. En caso de que se sostenga > 1, la demora para iniciar la atencin de un proceso crecer cada vez ms, cayendo en una cada vez mayor inanicin. FCFS tiene caractersticas claramente inadecuadas para trabajo interactivo, sin embargo, al no requerir de hardware de apoyo (como un temporizador) sigue siendo ampliamente empleado.

2.2.

Ronda (

Round Robin )

El esquema ronda busca dar una relacin de respuesta buena tanto para procesos largos como para los cortos. La principal diferencia entre la ronda y FCFS es que en este caso s emplearemos multitarea preventiva: A cada proceso 7

que est en la lista de procesos listos lo atenderemos por un slo quantum (q ). Si un proceso no ha terminado de ejecutar al nal de su quantum, ser interrumpido y puesto al nal de la lista de procesos listos, para que espere a su turno nuevamente. Los procesos que nos entreguen los planicadores a mediano o largo plazo se agregarn tambin al nal de esta lista. Con la misma tabla de procesos que encontramos en el caso anterior (y, por ahora, ignorando la sobrecarga administrativa provocada por los cambios de contexto), obtendramos los siguientes resultados: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Fin 6 11 8 18 20

T
6 10 5 9 8 7.6

E
3 5 3 4 3 3.6

P
2.0 2.0 2.5 1.8 1.6 1.98

Figura 6: Ronda (Round Robin ) La ronda puede ser ajustada modicando la duracin de q . Conforme incrementamos q , la ronda tiende a convertirse en FCFS  Si cada quantum es arbitrariamente grande, todo proceso terminar su ejecucin dentro de su quantum ; por otro lado, conforme decrece q , mayor frecuencia de cambios de contexto tendremos; esto llevara a una mayor ilusin de tener un procesador dedicado por parte de cada uno de los procesos, dado que cada proceso sera incapaz de notar las rfagas de atencin que ste le da (avance rpido durante un periodo corto seguido de un periodo sin avance). Claro est, el procesador simulado sera cada vez ms lento, dada la fuerte penalizacin que ira agregando la sobrecarga administrativa. Finkel (1988, p.35) se reere a esto como el principio de la histresis : Hay que resistirse al cambio. Como ya lo mencionamos, FCFS mantiene al mnimo posible la sobrecarga administrativa, y aunque sea marginalmente resulta en mejor rendimiento global. Si repetimos el anlisis anterior bajo este mismo mecanismo, pero con un quantum de 4 ticks, tendremos: 8

Proceso A B C D E Promedio

Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Fin 3 10 9 19 20

T
3 9 6 10 8 7.2

E
0 4 4 5 3 3.2

P
1.0 1.8 3.0 2.0 1.6 1.88

Figura 7: Ronda (Round Robin ), con q = 4

2.3.

El proceso ms corto a continuacin (SPN)

(Del ingls, Shortest Process Next ) Cuando no tenemos la posibilidad de implementar multitarea preventiva, pero requerimos de un algoritmo ms justo, y contamos con informacin por anticipado acerca del tiempo que requieren los procesos que forman la lista, podemos elegir el ms corto de los presentes. Ahora bien, es muy difcil contar con esta informacin antes de ejecutar el proceso. Es ms frecuente buscar caracterizar las necesidades del proceso: Ver si durante su historia de ejecucin5 ha sido un proceso tendiente a manejar rfagas limitadas por entrada-salida o limitadas por procesador, y cul es su tendencia actual. Para estimar el tiempo que requerir un proceso p en su prxima invocacin, es comn emplear el promedio exponencial ep . Denimos un factor atenuante 0 f 1, que determinar qu tan reactivo ser el promedio obtenido a la ltima duracin; es comn que este valor sea cercano a 0.9. Si el p emple q quantums durante su ltima invocacin,

ep = f ep + (1 f )q
5 No
perdamos de vista que todos estos mecanismos se aplican al

planicador a corto plazo.

Cuando un proceso se bloquea esperando una operacin de E/S, sigue en ejecucin, y la informacin de contabilidad que tenemos sigue alimentndose. SPN se nutre precisamente de dicha informacin de contabilidad

Podemos tomar como semilla para el ep inicial un nmero elegido arbitrariamente, o uno que ilustre el comportamiento actual del sistema (como el promedio del ep de los procesos actualmente en ejecucin).

Figura 8: Promedio exponencial (prediccin de prxima solicitud de tiempo) de un proceso. (Silberschatz, p.183) Empleando el mismo juego de datos de procesos que hemos venido manejando como resultados de las estimaciones, obtendramos el siguiente resultado: Proceso A B C D E Promedio Tiempo de Llegada 0 1 3 9 12

t
3 5 2 5 5 4

Inicio 0 5 3 10 15

Fin 3 10 5 15 20

T
3 9 2 6 8 5.6

E
0 4 0 1 3 1.6

P
1.0 1.8 1.0 1.2 1.6 1.32

Figura 9: El proceso ms corto a continuacin (SPN) 10

Como era de esperarse, SPN favorece a los procesos cortos. Sin embargo, un proceso largo puede esperar mucho tiempo antes de ser atendido, especialmente con valores de cercanos o superiores a 1  Un proceso ms largo que el promedio est predispuesto a sufrir inanicin. En un sistema poco ocupado, en que la cola de procesos listos es corta, SPN generar resultados muy similares a los de FCFS. Sin embargo, podemos observar en el ejemplo que con slo una permutacin en los cinco procesos ejemplos (B y C ), los factores de penalizacin a los procesos ejemplo resultaron muy beneciados.

2.3.1. SPN preventivo (PSPN)


(Preemptive Shortest Process Next ) Finkel (1988, p.44) apunta a que, a pesar de que intuitivamente dara una mayor ganancia combinar las estrategias de SPN con un esquema de multitarea preventiva, el comportamiento obtenido es muy similar para la amplia mayora de los procesos. Incluso para procesos muy largos, PSPN no los penaliza mucho ms all de lo que lo hara la ronda, y obtiene mejores promedios de forma consistente porque, al despachar primero a los procesos ms cortos, mantiene la lista de procesos pendientes corta, lo que lleva naturalmente a menores ndices de penalizacin.

2.3.2. El ms penalizado a continuacin (HPRN)


(Highest Penalty Ratio Next ) Si no contamos con multitarea preventiva, las alternativas presentadas hasta ahora resultan invariablmente injustas: FCFS favorece a los procesos largos, y SPN a los cortos. Un intento de llegar a un algoritmo ms balanceado es HPRN. Todo proceso inicia su paso por la cola de procesos listos con un valor de penalizacin P = 1. Cada vez que es obligado a esperar un tiempo w por otro t) proceso, P se actualiza como P = (w+ t . El proceso que se elige como activo ser el que tenga mayor P . Mientras < 1, HPRN evitar que incluso los procesos ms largos sufran inanicin. En los experimentos realizados por Finkel, HPRN se sita siempre en un punto medio entre FCFS y SPN; su principal desventaja se presenta conforme crece la cola de procesos listos, ya que P tiene que calcularse para todos ellos cada vez que el despachador toma una decisin.

2.4.

Retroalimentacin multinivel (FB)

(Multilevel Feedback )

2.5.

Ronda egosta (SRR)

(Selsh Round Robin )

11

2.6. 2.7. 2.8.

Mtodos hbridos Mtodos dependientes del estado y prioridad Mtodos de prioridad externa

Figura 10: Sobrecarga administrativa de los planicadores de corto plazo (Finkel, p.33)

3. Planicacin de multiprocesadores y en tiempo real 4. Planicacin de hilos 5. Recursos adicionales


vamex tutorial and performance information )
Thread Scheduling (ctd): quanta, switching and scheduling algorithms (Ja-

12

S-ar putea să vă placă și