Planificacion de Procesos Sistemas Operativos

download Planificacion de Procesos Sistemas Operativos

of 12

Transcript of Planificacion de Procesos Sistemas Operativos

  • Sistemas Operativos Planicacin de procesos

    Gunnar Wolf

    22 de febrero de 2013

    ndice

    1. Tipos de planicacin 1

    1.1. Tipos de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2. Midiendo la respuesta . . . . . . . . . . . . . . . . . . . . . . . . 4

    2. Algoritmos de planicacin 6

    2.1. Primero llegado, primero servido (FCFS ) . . . . . . . . . . . . . 7

    2.2. Ronda (Round Robin) . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.3. El proceso ms corto a continuacin (SPN) . . . . . . . . . . . . 9

    2.4. Retroalimentacin multinivel (FB) . . . . . . . . . . . . . . . . . 11

    2.5. Ronda egosta (SRR) . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2.6. Mtodos hbridos . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2.7. Mtodos dependientes del estado y prioridad . . . . . . . . . . . 12

    2.8. Mtodos de prioridad externa . . . . . . . . . . . . . . . . . . . . 12

    3. Planicacin de multiprocesadores y en tiempo real 12

    4. Planicacin de hilos 12

    5. Recursos adicionales 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 (princi-

    palmente 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 pro-

    ceso. 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 deter-

    minado momento, sea por escacez/saturacin de algn recurso (como la

    memoria primaria) o porque estn realizando alguna solicitud que no pue-

    de 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 proce-

    sador. 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 (pe-

    riodos, 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 entrada-

    salida 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 rfa-

    ga 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

    3

  • 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. frac-

    ciones de segundo), es comn emplear quantums y ticks. Esto es en buena me-

    dida 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 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.

    Quantum El tiempo mnimo que se permitir a un proceso el uso del proce-

    sador. 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 comporta-

    miento 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 completarel trabajo pendiente de un proceso p, incluyendo el tiempo que est inac-tivo esperando ejecucin (pero est en la cola de procesos listos).

    Tiempo en espera (E = T t) Tambin referido como tiempo perdido. Deltiempo de respuesta total, cunto tiempo p est listo y esperando ejecutar.Desde la ptica de p, desearamos que E 0Tiempo de penalizacin (P = Tt ) Fraccin del tiempo de respuesta durantela cual p estuvo en espera.

    Proporcin de respuesta (R = tT ) Inverso de P . Fraccin del tiempo de res-puesta 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,P (t) = T (t)t y R(t) =

    tT (t) .

    Adems de estos tiempos, expresados en relacin al tiempo efectivo de los

    diversos procesos del sistema, tenemos tambin:

    4

  • Tiempo ncleo o kernel Tiempo que pasa el sistema en espacio de ncleo,

    incluyendo el empleado en decidir e implementar la poltica de planica-

    cin y los cambios de contexto.

    Tiempo desocupado (idle) Tiempo en que la cola de procesos listos est

    vaca y no puede realizarse ningn trabajo.

    Utilizacin del CPU Porcentaje del tiempo en que el CPU est realizando

    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%.

    Por ejemplo, si llegan a la cola de procesos listos:

    Proceso Ticks Llegada

    A 70 0B 30 20C 120 60D 40 200

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

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

    ronda,

    3

    tendramos:

    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 este clculo, dado que en este mbito

    todo el trabajoo que hace puede verse como burocracia ante los resultados deseados del sistema

    5

  • Proceso t T E P RA 70 210 140 3.0 0.33B 30 80 50 2.66 0.37C 120 320 140 2.66 0.37D 40 140 100 3.5 0.28Ncleo 100 400 300 4.0 0.25

    Tomemos en cuenta que, para obtener T , se parte del momento en que el pro-ceso 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 tam-

    bin 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 requeridopromedio , denimos el valor de saturacin como = .Cuando = 0, nunca llegan nuevos procesos, por lo cual nuestro sistemaestar desocupado. Cuando = 1, los procesos son despachados al mismo ritmoal que van llegando. Cuando > 1, el ritmo de llegada de procesos es mayorque 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 en-

    cuentra 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 inte-

    rrupcin

    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 se-

    gundo 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 es-

    tamos 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)

    El esquema ms simple de planicacin es el Primero llegado, primero ser-

    vido (First come, rst serve, FCFS ). Este es un mecanismo cooperativo, con la

    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 Tiempo de t Inicio Fin T E P

    Llegada

    A 0 3 0 3 3 0 1

    B 1 5 3 8 7 2 1.4

    C 3 2 8 10 7 5 3.5

    D 9 5 10 15 6 1 1.2

    E 12 5 15 20 8 3 1.6

    Promedio 4 6.2 2.2 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 unproceso 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 inte-

    rrumpido 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 Tiempo de t Fin T E P

    Llegada

    A 0 3 6 6 3 2.0

    B 1 5 11 10 5 2.0

    C 3 2 8 5 3 2.5

    D 9 5 18 9 4 1.8

    E 12 5 20 8 3 1.6

    Promedio 4 7.6 3.6 1.98

    Figura 6: Ronda (Round Robin)

    La ronda puede ser ajustada modicando la duracin de q. Conforme in-crementamos q, la ronda tiende a convertirse en FCFS Si cada quantum esarbitrariamente grande, todo proceso terminar su ejecucin dentro de su quan-

    tum; por otro lado, conforme decrece q, mayor frecuencia de cambios de contextotendremos; 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 Tiempo de t Fin T E P

    Llegada

    A 0 3 3 3 0 1.0

    B 1 5 10 9 4 1.8

    C 3 2 9 6 4 3.0

    D 9 5 19 10 5 2.0

    E 12 5 20 8 3 1.6

    Promedio 4 7.2 3.2 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 ejecucin

    5

    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 atenuante0 f 1, que determinar qu tan reactivo ser el promedio obtenido a laltima duracin; es comn que este valor sea cercano a 0.9.

    Si el p emple q quantums durante su ltima invocacin,

    ep = fep + (1 f)q5

    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

    9

  • Podemos tomar como semilla para el ep inicial un nmero elegido arbitraria-mente, 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 manejan-

    do como resultados de las estimaciones, obtendramos el siguiente resultado:

    Proceso Tiempo de t Inicio Fin T E P

    Llegada

    A 0 3 0 3 3 0 1.0

    B 1 5 5 10 9 4 1.8

    C 3 2 3 5 2 0 1.0

    D 9 5 10 15 6 1 1.2

    E 12 5 15 20 8 3 1.6

    Promedio 4 5.6 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 elpromedio 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

    proceso, P se actualiza como P = (w+t)t . El proceso que se elige como activo serel que tenga mayor P . Mientras < 1, HPRN evitar que incluso los procesosms 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 elloscada 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. Mtodos hbridos

    2.7. Mtodos dependientes del estado y prioridad

    2.8. Mtodos de prioridad externa

    Figura 10: Sobrecarga administrativa de los planicadores de corto plazo (Finkel,

    p.33)

    3. Planicacin de multiprocesadores y en tiem-

    po real

    4. Planicacin de hilos

    5. Recursos adicionales

    Thread Scheduling (ctd): quanta, switching and scheduling algorithms (Ja-

    vamex tutorial and performance information)

    12

    Tipos de planificacinTipos de procesoMidiendo la respuesta

    Algoritmos de planificacinPrimero llegado, primero servido (FCFS)Ronda (Round Robin)El proceso ms corto a continuacin (SPN)Retroalimentacin multinivel (FB)Ronda egosta (SRR)Mtodos hbridosMtodos dependientes del estado y prioridadMtodos de prioridad externa

    Planificacin de multiprocesadores y en tiempo realPlanificacin de hilosRecursos adicionales