of 30 /30
3 Planificación de procesos y procesadores La forma en que se reparte el uso de la CPU entre los procesos tiene un enorme impacto en el rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran atención a las políticas de planificación que se implementan y se han elaborado multitud de conceptos relacionados con ello. El estudio de estas políticas es el objeto de este capítulo. Se presta también atención a la planificación en multiprocesadores, que añade una dimensión espacial al problema, y a la planificación de tiempo real.

3 Planificación de procesos y procesadores - UPV/ · PDF fileSistemas Operativos II Planificación de procesos y procesadores 58 • Otras partes del sistema operativo pueden intervenir

  • Author
    dohanh

  • View
    217

  • Download
    0

Embed Size (px)

Text of 3 Planificación de procesos y procesadores - UPV/ · PDF fileSistemas Operativos II...

  • 3 Planificacin de procesos y procesadores

    La forma en que se reparte el uso de la CPU entre los procesos tiene un enorme impacto en el

    rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran

    atencin a las polticas de planificacin que se implementan y se han elaborado multitud de

    conceptos relacionados con ello. El estudio de estas polticas es el objeto de este captulo. Se

    presta tambin atencin a la planificacin en multiprocesadores, que aade una dimensin

    espacial al problema, y a la planificacin de tiempo real.

  • Sistemas Operativos II Planificacin de procesos y procesadores 56

    Contenido

    3.1 Introduccin 57

    3.2 Evaluacin del rendimiento 58

    3.3 Comportamiento de los programas 60

    3.4 Polticas de planificacin 61

    3.4.1 Seleccin de un proceso para entrar en la CPU 62

    3.4.2 Expulsin 64

    3.4.3 Planificacin multinivel 68

    3.5 Planificacin en multiprocesadores 69

    3.5.1 Criterios para la planificacin en multiprocesadores 70

    3.5.2 Polticas de planificacin en multiprocesadores 71

    3.6 Planificacin de tiempo real 72

    3.6.1 Criterios para la planificacin de tiempo real 74

    3.6.2 Polticas de planificacin de tiempo real 75

    3.7 Ejemplos de planificacin 76

    3.7.1 Planificacin en sistemas UNIX clsicos 76

    3.7.2 Planificacin en UNIX SVR4 78

    3.7.3 Planificacin en Windows 78

    3.8 Bibliografa 79

    3.9 Ejercicios 80

  • Sistemas Operativos II Planificacin de procesos y procesadores 57

    3.1 Introduccin

    En el captulo anterior se ha estudiado cmo se representan los procesos y se

    implementan las transiciones de estado entre ellos y los cambios de contexto. Uno de

    los objetivos de un sistema operativo multiprogramado es proporcionar una

    utilizacin eficiente de los recursos del proceso, permitiendo a los procesos un uso de

    ellos que evite situaciones de inanicin. Todo esto es lo que persigue una poltica de

    planificacin adecuada, que determina los criterios de eleccin del siguiente proceso

    a usar la CPU. Evaluar la calidad de una poltica de planificacin es complejo y

    presenta diferentes perspectivas, dependiendo de los intereses de las aplicaciones, lo

    que lleva a definir previamente un conjunto de parmetros de rendimiento. El

    rendimiento de una determinada poltica de planificacin depender tambin del

    comportamiento de los programas, por lo que la eleccin de una u otra poltica

    deber tener en cuenta el tipo de procesos que ejecuta el sistema, fundamentalmente

    si estn orientados a clculo o son interactivos. Algunas aplicaciones, como las de

    tiempo real, imponen unos requisitos muy particulares en el uso del procesador, lo

    que hace difcil su convivencia con las aplicaciones habituales en los sistemas de

    propsito general (de tiempo compartido), conduciendo a polticas de planificacin

    de tiempo real especficas.

    Hoy en da son cada vez ms habituales las plataformas multiprocesador. Aunque la

    poltica de planificacin es independiente, en general, del nmero de unidades de

    proceso, los sistemas multiprocesador requieren polticas complementarias que

    tienen como objetivo un compromiso entre el equilibro de la carga de los

    procesadores, que conduce a una mejor utilizacin de estos, y el aprovechamiento de

    la localidad de los procesos, que impulsa a mantener a cada proceso en un mismo

    procesador durante su ejecucin.

    El trabajo de planificacin reside en gran parte en una funcin scheduler del ncleo

    del sistema operativo, pero otras partes del sistema pueden colaborar en esta tarea,

    normalmente modificando los parmetros que utiliza el scheduler para decidir qu

    proceso planificar. En general la planificacin puede repartirse en tres niveles

    [STA05]:

    En la llamada al sistema de ejecutar programa. Cuando se crea un proceso se puede decidir alguno de los criterios para su planificacin, como por ejemplo la

    prioridad inicial y el quantum. A esta planificacin se la denomina de largo plazo.

    En la funcin scheduler. Cada vez que un proceso abandona la CPU, toma la decisin de qu proceso planificar en funcin de la poltica de planificacin

    establecida y del valor de los parmetros de planificacin. A esta planificacin se

    la denomina de corto plazo.

  • Sistemas Operativos II Planificacin de procesos y procesadores 58

    Otras partes del sistema operativo pueden intervenir en la planificacin, bien peridicamente (como en algunos sistemas UNIX que estudiaremos), bien de

    forma indirecta, como es el caso del swapper de memoria1: al sacar un proceso de

    memoria por problemas de espacio, hace que este no sea inmediatamente

    planificable. A este tipo de planificacin se la denomina de medio plazo.

    La Figura 3.1 muestra qu transiciones de estado estn involucradas en cada plazo de

    la planificacin.

    Figura 3.1. Plazos de la planificacin.

    3.2 Evaluacin del rendimiento

    La seleccin de una determinada poltica de planificacin de procesos se basa en un

    conjunto de parmetros de rendimiento cuya importancia relativa depende de

    algunas caractersticas particulares del sistema (por ejemplo, interactivo o batch,

    existencia de procesos de tiempo real), lo que determina los compromisos que hay

    que establecer en la seleccin de las poltica y mecanismos de la gestin de procesos.

    En general, todo mecanismo introduce una sobrecoste en tiempo de ejecucin que

    contrarresta parte de los beneficios obtenidos por la introduccin del mecanismo.

    Los parmetros de rendimiento que utilizaremos como criterios para analizar la

    calidad de una poltica de planificacin se basan en los definidos en el Captulo 1,

    particularizados para su aplicacin al recurso procesador:

    1 Se estudiar con la gestin de memoria.

    Ejecutndose

    Bloqueado en memoria

    Preparado en memoria

    Finalizado

    Bloqueado fuera de memoria

    Preparado fuera de memoria

    Planificacin a corto plazo

    Planificacin a medio plazo

    Planificacin a largo plazo

  • Sistemas Operativos II Planificacin de procesos y procesadores 59

    Eficiencia

    Se refiere a la eficiencia temporal. Se expresa como el porcentaje de tiempo en

    que la CPU se mantiene ocupada haciendo trabajo til. Por trabajo til se

    entiende la ejecucin de cdigo de los programas (y de los servicios solicitados

    por stos). Cabe esperar que un sistema multiprogramado sea mucho ms

    eficiente que uno monoprogramado, ya que en stos la CPU est ociosa

    cuando en programa espera por una operacin de E/S pudiendo haber

    programas esperando a ejecutarse, por lo que ese tiempo contar como tiempo

    perdido. Sin embargo, un sistema multiprogramado tiene que ejecutar las tareas

    propias de la gestin de procesos (scheduler y del dispatcher), y stas deben

    computarse tambin como tiempo perdido.

    perdidotil

    tiltil

    ttt

    t

    T

    tEf

    +==

    A veces resultar interesante referirse a la prdida de eficiencia como:

    T

    tEf

    perdido

    t =1

    Productividad (throughput)

    En lo que respecta a la gestin de procesos, mide el nmero de programas que

    se ejecutan por unidad de tiempo. Incluye otras muchas caractersticas que

    afectan el rendimiento del sistema, como por ejemplo la velocidad del

    procesador, que habr que compensar si se comparan mquinas con distinto

    hardware.

    Tiempo de finalizacin

    Considera el rendimiento del sistema desde el punto de vista del programa

    que se ejecuta. Globalmente, se puede expresar como el tiempo desde que se

    solicita la ejecucin de un programa hasta que sta finaliza. Es una medida

    vlida para sistemas batch. Lo denotaremos tf

    Tiempo de espera

    Mide exclusivamente los tiempos totales de espera de un proceso en la cola de

    preparados, tw, eliminando la dependencia de la duracin del propio

    programa. Depende en cierta medida, sin embargo, del nmero de veces que

    ste se bloquea.

    Debe tenerse en cuenta la siguiente relacin entre tiempos: si tCPU es el tiempo

    que pasa el proceso en la CPU y tbloq es el tiempo total que el proceso est

    bloqueado, entonces

  • Sistemas Operativos II Planificacin de procesos y procesadores 60

    tf = tw+ tCPU+ tbloq

    Tasa de CPU

    La relacin entre el tiempo de CPU del programa y su tiempo de espera

    expresa la tasa de CPU, que indica el grado de disfrute del procesador que ha

    tenido el proceso:

    wCPU

    CPU

    tt

    tTasaCPU

    +=

    Latencia (tiempo de respuesta)

    Mide el tiempo desde que un proceso entra en el estado de preparado (porque

    se crea o porque se desbloquea) hasta que entra en ejecucin. Slo tiene

    sentido en sistemas interactivos. Lo denotaremos tr.

    Equidad (predecibilidad)

    Los parmetros anteriores (en particular el tiempo de terminacin, la latencia y

    el tiempo de espera) se miden con parmetros estadsticos. La media parece

    ser el parmetro ms indicativo. Sin embargo, otros parmetros de la

    distribucin estadstica de una medida del rendimiento, como por ejemplo la

    varianza de la latencia, son de gran inters. Una varianza pequea en la

    latencia es indicadora de un comportamiento homogneo, lo que es deseable

    por dos motivos: por una parte el comportamiento de los programas es ms

    predecible; por otra parte indica un comportamiento ms ecunime y menos

    discriminatorio. En cambio, varianzas muy grande