tema3_Procesos

download tema3_Procesos

of 98

Transcript of tema3_Procesos

  • 8/16/2019 tema3_Procesos

    1/98

    Sistemas Operativos I

    Tema 3

    Procesos

    Equipo de Sistemas Operativos DISCA / DSIC

    UPV

  • 8/16/2019 tema3_Procesos

    2/98

  • 8/16/2019 tema3_Procesos

    3/98

    3Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de algoritmos.

    8.- S.O. dirigido por eventos.

    ? Bibliografía? A. Silberschatz, P. Galvin.

    Sistemas Operativos. 5ª ed.? Tema 4

    ? W. Stallings.

    Sistemas Operativos 2ª ed.

    ? Tema 3.

  • 8/16/2019 tema3_Procesos

    4/98

  • 8/16/2019 tema3_Procesos

    5/98

    5Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Concepto de proceso:

    Existen diferentes visiones complementarias del concepto de proceso:

    ? Programa en ejecución.

    ? Unidad de asignación de recursos.

    ? Proceso como procesador virtual.

  • 8/16/2019 tema3_Procesos

    6/98

    6Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Proceso como programa en ejecución:

    ? Programa : Lista de instrucciones. Ente pasivo.

    ? Proceso : Programa en ejecución. Ente activo. Pasa por una serie deestados

    ? Un programa reside normalmente en un fichero que se encuentra

    físicamente en el disco y es cargado en memoria cuando se crea elproceso para ejecutarlo.

    ? Puede haber dos o más procesos asociados a la ejecución de un mismoprograma. Es habitual que un proceso genere más procesos durante suejecución.

  • 8/16/2019 tema3_Procesos

    7/98

    7Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Proceso como procesador virtual:

    ? Proceso : cada una de las actividades paralelas que se ejecutan en lamáquina. Da la apariencia de que todas ellas se ejecutan sobreprocesadores diferentes en paralelo.

    ? Ejemplos:

    ? Procesos de usuario: Un proceso de edición de un sistema de tiempocompartido. Un trabajo en un sistema por lotes. La compilación de unprograma fuente en Pascal: el programa que ejecuta el proceso es elpropio compilador.

    ? Procesos del sistema: “swapper” (que decide qué procesos hay queextraer de la memoria o introducir en ella cuando la cantidad dememoria libre no llega o supera ciertos límites), “pagedeamon” (es el

    encargado de utilizar reemplazo para liberar marcos y pasarlos a lareserva).

  • 8/16/2019 tema3_Procesos

    8/98

    8Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Proceso como procesador virtual:

    ? El sistema operativo simula la existencia de N procesadores virtuales(procesos) a partir de una CPU o procesador físico.

    ? Cada procesador virtual ejecuta secuencialmente un únicoprograma.

    ? Todos los procesos se ejecutan concurrentemente

  • 8/16/2019 tema3_Procesos

    9/98

    9Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Ejecución secuencial y ejecución concurrente.

    ? Ejecución secuencial: La ejecución de un proceso se dice que essecuencial porque sus operaciones son ejecutadas por la CPU una trasotra, en el orden que dicte el programa.

    ? Ejecución concurrente: La ejecución de dos procesos se dice que esconcurrente porque estos se pueden ejecutar en paralelo.

    ?

    Conc urrencia real: Si cada proceso se ejecuta sobre una CPU.? Concurrencia vir tual : La CPU reparte su tiempo entre los

    procesos para simular su ejecución paralela.

  • 8/16/2019 tema3_Procesos

    10/98

    10Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Proceso como unidad de asignación de recursos:

    ? Para ejecutar un programa se necesita un entorno formado por una seriede recursos: memoria, descriptores de ficheros y otros atributos delproceso.

    ? Un proceso se puede considerar como la unidad de propiedad de todosesos recursos.

    Memoria

    Tiempode CPU

    Tabla dedescriptores

    ficheros

    Otrosatributos

    P1

  • 8/16/2019 tema3_Procesos

    11/98

    11Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Estados de un proceso

    Al ejecutar un proceso éste va cambiando de estado. El estado de un procesose define como el comportamiento que presenta en un instante dado:

    ? Activo: El proceso se puede ejecutar. No hay impedimentos en asignarlealguna CPU.

    ? Ejecución : El proceso tiene asignada una CPU, las instrucciones seestán ejecutando.

    ? Preparado : El proceso puede ser ejecutado pero está esperando quese le asigne una CPU libre. Puede haber varios procesos en esteestado.

    ? Suspendido : No puede ser ejecutado porque el proceso se encuentraesperando un evento como:

    ? la finalización de una operación de E/S (una lectura de teclado)? la comunicación con otro proceso, etc.

  • 8/16/2019 tema3_Procesos

    12/98

    12Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Estados de un proceso:

    NUEVO

    PREPARADO

    TERMINADO

    ENEJECUCIÓN

    SUSPENDIDO

    Admitido

    Esperar E/So evento

    Terminación

    Expulsión

    Elegido Planificador

    Fin E/So

    llegada evento

    ACTIVO

    Proceso terminadopor otro proceso

    Proceso terminadopor otro proceso

  • 8/16/2019 tema3_Procesos

    13/98

    13Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Operaciones sobre procesos (1)

    ? Creación: Supone asignar todos los recursos que el proceso necesita parasu ejecución, como p.e. memoria.

    ? Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un procesoque gestione cada terminal y el shell cada vez que recibe una nuevaorden del usuario (si ésta es externa).

    ? Terminación: Supone liberar los recursos previamente asignados alproceso. Esta terminación puede ser:

    ? Terminación normal: El proceso invoca su propia terminación.Ejemplo en UNIX : exit()

    ? Terminación anormal: El proceso termina por iniciativa del sistemaoperativo al detectar alguna condición de error (violación de límites,

    errores aritméticos) o por iniciativa de algún otro proceso.Ejemplo en UNIX : kill() y señales.

  • 8/16/2019 tema3_Procesos

    14/98

    14Sistemas Operativos I (00-01) Tema 3: Procesos

    1.- Concepto de proceso? Operaciones sobre procesos (2):

    ? Suspensión: Supone pasar un proceso al estado suspendido para queespere un evento o E/S.

    ? Ejemplo en UNIX : read() sobre un tubo vacío.? Activación: Pasar un proceso al estado activo cuando se produce el

    evento que esperaba.

    ? Ejemplo en UNIX : un proceso efectúa un write() sobre un tubo en elque había un lector esperando. El lector se reactiva.

  • 8/16/2019 tema3_Procesos

    15/98

    15Sistemas Operativos I (00-01) Tema 3: Procesos

    inicial

    parado

    En ejec .(usuario)

    En ejec.(núcleo)

    preparadosuspendido

    zombie

    Empiezafork()

    Acabafork()

    Cambiosde

    contexto

    SIGSTOPSIGCONT

    Espera evento

    Ocurre evento

    exit()

    wait()Interrupción o

    llamada al sistemaFin de

    interrup. ollamada al sist.

    ESTADOS ACTIVOS

    1.- Concepto de proceso? Estados de un proceso en UNIX

  • 8/16/2019 tema3_Procesos

    16/98

    16Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.

    2.- Implementación de procesos.3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.

    8.- S.O. dirigido por eventos.

  • 8/16/2019 tema3_Procesos

    17/98

    17Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesosPara implementar procesos es conveniente pensar en un proceso como un procesadorvirtual que ejecuta un programa y que se implementa a partir de un procesador físico.

    ? La implementación de procesos requiere:? Bloque de control de un proceso PCB (Process Control Block ): es una

    estructura de datos para administrar el proceso. Almacena información de unproceso.

    ? Asignar los recursos necesarios para su ejecución, fundamentalmente lamemoria para almacenar el código, los datos y la pila.

    ? Multiplexar la CPU entre los procesos: repartir el tiempo de la CPU entre losdiferentes procesos para simular la ejecución paralela (concurrencia virtual).

    ? Bloque de control del sistema : es una estructura de datos que el sistema utilizapara controlar la ejecución de los procesos. Almacena información de todos losprocesos.

  • 8/16/2019 tema3_Procesos

    18/98

    18Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Bloque de Control de proceso (PCB):

    Es una estructura de datos donde se almacenan los atributos de un proceso, es decir,

    la información asociada a un proceso. En un sistema de multiprogramación serequiere un gran cantidad de información de cada proceso para su administración.

    Esta información puede agruparse en tres categorías:

    ? Identificación de Proceso : a cada proceso se le asigna un identificador numéricoúnico (puede ser tan simple como un índice en la tabla de procesos).

    ? Inform ación de estado del proc esador (Con texto): Básicamente está formadapor el contenido de los registros del procesador. Cuando se interrumpe unproceso, el contenido de los registros del procesador debe salvarse de forma quepueda restaurarse cuando el proceso reanude su ejecución

    ? Inform ación de co ntrol del proceso: Información necesaria para que el sistemaoperativo controle y coordine los diferentes procesos.

  • 8/16/2019 tema3_Procesos

    19/98

    19Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Identificación de Procesos. El PCB guarda:

    ? Identificador de este proceso.

    ? Identificador del proceso que creó a este proceso (proceso padre).

    ? Identificador del usuario.

    ? Información de estado del procesador ? Registros generales (visibles para el usuario).

    ? Contador de programa: contiene la dirección de la próxima instrucción a ejecutar.

    ? Códigos de cond ición: muestran el resultado de la operación aritmética o lógica másreciente (signo, cero, acarreo, desbordamiento).

    ? Info rm ación de estado: Indicadores de habilitación e inhabilitación de interrupciones.

    ? Puntero d e Pila: Cada proceso tiene una o más pilas LIFO asociadas, para almacenarparámetros y direcciones de retorno de procedimientos y de las llamadas al sistema.El puntero de pila siempre apunta a la cima de la pila.

  • 8/16/2019 tema3_Procesos

    20/98

    20Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Información de control de proceso.

    Información necesaria para que el sistema operativo controle y coordine los diferentes

    procesos activos.? Estado d el proceso: preparado, en ejecución, suspendido, etc.

    ? Prioridad de un p roceso

    ? Información de planificación: depende del algoritmo de planificación, porejemplo la cantidad de tiempo que el proceso ha estado esperando y que seejecutó la última vez.

    ? Suceso (evento ): identidad del suceso que el proceso está esperando antes depoder reanudarse (solicitudes de E/S pendientes).

    ? Mapa de memo ria: memoria de código, memoria de datos y memoria de pila.

  • 8/16/2019 tema3_Procesos

    21/98

    21Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Implementación de varios procesos: Cambios de contexto

    La ejecución aparentemente simultánea de varios procesos en un mismo sistema,requiere repartir el tiempo de CPU entre los procesos a ejecutar.

    Ello implica desasignar la CPU al proceso en ejecución y asignarla a un procesopreparado. Esta actividad se conoce con el nombre de cambio s de contexto .

    Realizar un cambio de contexto lleva consigo:

    ? Salvar el contexto del proceso en ejecución en su PCB.

    ? Poner en la CPU el contexto del nuevo proceso (nuevo contador de programa).

    ? Actualizar la información de control de los procesos.

  • 8/16/2019 tema3_Procesos

    22/98

    22Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos

    CPUPCSP

    registros

    1 procesador

    físico

    P1 contexto

    PCB #1

    P2 contexto

    PCB #2

    Pn contexto

    PCB #n

    n procesadores virtuales

    (3)

    P1 --> P2

    P2 --> P1PCSP

    registros

    contexto

    (1)

    contexto

    PCSP

    registros

    (2)

    PCSP

    registros

    (4)

    ? Cambio de contexto

  • 8/16/2019 tema3_Procesos

    23/98

    23Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Cambio de contexto.

    Los cambios de contexto no son trabajo útil e implican una sobrecarga

    importante si se hacen con frecuencia: reducen la utilización.? Utilización de CPU

    P1 P2 P3 P1

    t

    Cambios de contexto

    Utilización de CPU =T(P1) + T(P2) +T(P3) + 3t

    T(P1) + T(P2) +T(P3)

  • 8/16/2019 tema3_Procesos

    24/98

    24Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Motivos que provocan cambios de contexto:

    ? Terminación normal del proceso, el proceso en ejecución se acaba.

    ? El proceso en ejecución es suspendido en espera de una E/S o de unevento.

    ? El proceso en ejecución es expulsado bien porque ha agotado lacantidad de tiempo de CPU asignada bien porque se decide asignarla aotro proceso más prioritario.

    ? El sistema se puede representar como un diagrama de colas donde

    ?

    Los círculos representan recursos? Los rectángulos representan colas de procesos que esperan acceder a

    los recursos.

  • 8/16/2019 tema3_Procesos

    25/98

    25Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Implementación de varios procesos: Estructuras de control del sistema

    Procesoterminado

    Cola de procesos

    preparadosCPU

    Cola de procesosesperando sucesoSuceso

    Cola de procesosesperando E/SE/S

    Cola de procesosesperando ejecución

    Procesonuevo

    Expulsión

    Recursos

    Colas

    ? Los PCB s se almacenanen colas, cada una delas cuales representa unestado particular de losprocesos.

    ? Los PCB s se almacenanen colas, cada una delas cuales representa unestado particular de losprocesos.

    ? Para implementar procesos es conveniente pensar en unsistema como una colección de recursos y colas querepresentan los procesos que esperan para utilizar el recurso.

    ? Para implementar procesos es conveniente pensar en un

    sistema como una colección de recursos y colas querepresentan los procesos que esperan para utilizar el recurso.

  • 8/16/2019 tema3_Procesos

    26/98

    26Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos? Implementación de varios procesos: Estructuras de control del sistema

    ? Los datos que el sistema utiliza para controlar la ejecución de los procesos, se

    pueden considerar reunidos en una estructura que se suele conocer con elnombre de Bloque de Control del Sistema (SCB) .

    ? El SCB contiene en la gran mayoría de casos la siguiente información:? Tabla de procesos? Un puntero a la cola de PCBs de los procesos nuevos, que no están

    activos y están esperando ejecución.? Un puntero al PCB del proceso que está haciendo uso de la CPU? Un puntero a la cola de PCBs de los procesos preparados? Un puntero a la cola de PCBs de los procesos que están esperando a

    que se produzca algún evento, para poder volver a ejecutarse, nopudiendo hacerlo hasta que tenga lugar el evento esperado.

    ? Los identificadores de las rutinas necesarias para tratar lasinterrupciones producidas por el hardware, software o erroresindeseados.

    ? Estructuras de datos relacionadas con la comunicación y sincronizaciónde procesos

    ? Otras tablas y datos relacionados con la gestión de memoria y ficheros.

  • 8/16/2019 tema3_Procesos

    27/98

    27Sistemas Operativos I (00-01) Tema 3: Procesos

    2.- Implementación de procesos

    Proceso enejecución

    Cola de procesospreparados

    Cola de procesosnuevos

    Cola de procesosesperando evento i

    Vectores deinterrupción

    ESTRUCTURAS DE

    CONTROL DEL SISTEMAIdentificador

    Contexto

    Estado: EJEC

    Evento: - -

    Mapa dememoria

    P. Siguiente -

    ...

    PCB n

    Estado: PREP

    Evento: - -

    P. siguiente

    ...

    Estado: SUSP

    Evento: i

    P. siguiente

    ...

    ?

    PCB 3

    PCB 6 PCB 1

    PCB 4 PCB 2

    Tabla de procesos

  • 8/16/2019 tema3_Procesos

    28/98

    28Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).4.- Conceptos de planificación.

    5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.

    8.- S.O. dirigido por eventos.

  • 8/16/2019 tema3_Procesos

    29/98

    29Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución ( Threads )? Concepto de hilo de ejecución ( thread ).

    Hay sistemas operativos donde un proceso puede tener internamente actividades

    concurrentes llamadas hilos de ejecución.

    Ejemplo:

    ? Un proceso UNIX“videojuego” puede tenerun hilo de ejecución paracada uno de los elementosmóviles de la pantalla.

  • 8/16/2019 tema3_Procesos

    30/98

    30Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución ( Threads )? Concepto de hilo de ejecución ( thread ).

    El concepto de proceso que se ha presentado incluye las dos característicassiguientes:

    ? Unidad de propiedad de recurs os : A cada proceso se le asigna unespacio de direcciones virtuales para albergar a la imagen del proceso y,de cuando en cuando también se le puede asignar otros recursos(canales de E/S, dispositivos de E/S y ficheros).

    ? Unid ad de ejecución: Un proceso es un camino de ejecución a través deun programa. Esta ejecución puede ser intercalada con la de otrosprocesos.

    Estas dos características son la esencia del proceso, pero pueden ser tratadasde manera independiente por el s.o.

  • 8/16/2019 tema3_Procesos

    31/98

    31Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)? Se puede diferenciar entre:

    ? Proceso (proceso pesado): Unidad de propiedad de los recursos(memoria, descriptores de ficheros, etc). Tiene muchos atributos y es lentode crear.

    ? Hilo de ejecución (proceso ligero): Actividad concurrente dentro de unproceso (pesado). Todos los hilos de ejecución que pertenecen a unmismo proceso comparten sus recursos (memoria, descriptores de fichero,

    etc). Tiene pocos atributos y se crea rápidamente.

    P1 P2

    Hilos de ejecución

  • 8/16/2019 tema3_Procesos

    32/98

    32Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)? Compartir memoria

    ? Los procesos UNIX no comparten

    memoria (código o datos). Cadauno tiene su propio espacio dedirecciones.

    ? Los hilos de ejecución de unmismo proceso pueden tenerrutinas o variables comunes.

    ? No obstante, cada hilo tendrá supropia pila donde se guardaránlas variables locales yargumentos de invocación.

  • 8/16/2019 tema3_Procesos

    33/98

    33Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)Los hilos de ejecución pueden implementarse de tres formas:

    ? Hilos a nivel de usuario ( user-level threads ): los hilos se crean a nivel del

    proceso de usuario vía un conjunto de procedimientos de biblioteca o vía el soportede ejecución del lenguaje de programación.

    ? El sistema operativo sólo crea un hilo de ejecución en el núcleo por cada espaciode direcciones (proceso).

    ? El resto de los hilos son implementados por el run-time del lenguaje.

    ? Es la aproximación utilizada en sistemas operativos que no soportan hilos.

    ? Los cambios de contexto entre los hilos a nivel de usuario son rápidos, ya que noinvolucran llamadas al sistema.

    ? La política de planificación de estos hilos no está restringida a la propia delsistema operativo.

    ? Cuando este tipo de hilos invocan llamadas al sistema bloqueantes, normalmente

    se bloquea todo el proceso.? No pueden explotar un sistema multiprocesador, ya que el sistema operativo ve un

    único proceso.

  • 8/16/2019 tema3_Procesos

    34/98

    34Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)

    Núcleo del SO

    Un programa,muchos hilos

    Soporte enejecución del

    lenguaje

    Un programa,muchos hilos

    Soporte enejecución del

    lenguaje

    Hilos a nivel de usuario

    = Espacio de direcciones = construcciónlingüística o hiloa nivel usuario

    = proceso o hilo del SO

    •Implementación de hilos

  • 8/16/2019 tema3_Procesos

    35/98

    35Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)? Implementación de hilos de

    ejecución

    ? Hilos a nivel del núcleo(kernel-level th reads ):? El sistema operativo soporta hilos de

    ejecución y proporciona un conjuntode llamadas al sistema para sumanipulación.

    ? El sistema crea un hilo de ejecuciónpor cada hilo a nivel de usuario.

    ? Son la unidad de planificación delsistema.

    ? El bloqueo y activación de hilos correa cargo del núcleo.

    ? Los cambios de contexto sonmanejados por el kernel y son unas10 veces más lentos que en el casode los hilos de usuario.

    Núcleo del SO

    Un programa,muchos hilos

    Soporte enejecución del

    lenguaje

    Un programa,muchos hilos

    Soporte enejecución del

    lenguaje

    Hilos a nivel de núcleo

    = Espacio de direcciones

    = construcciónlingüística o hiloa nivel usuario

    = proceso o hilo del SO

  • 8/16/2019 tema3_Procesos

    36/98

    36Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (Threads)? Implementación de hilos

    de ejecución

    ? Aproximación híbrida:? Se implementan las dos

    clases de hilos anteriores.

    ? El sistema operativopermite más de un hilo por

    proceso.? El soporte del lenguaje de

    programación utiliza unhilo del núcleo paraimplementar un grupo dehilos de usuario.

    ? Proporciona flexibilidad yel máximo rendimientopotencial al programadorde aplicaciones.

    Núcleo del SO

    Soporte en ejecución del lenguaje

    Un programa, muchos hilos

    u 1 u 2

    k 1

    = Espacio de direcciones

    = construcciónlingüística o hiloa nivel usuario

    = proceso o hilo del SO

  • 8/16/2019 tema3_Procesos

    37/98

    37Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución ( threads )? Utilización de hilos de ejecución

    Los hilos de ejecución pueden ser creados y manejados:

    ? Utilizando un lenguaje de programación convencional y llamadas alsistema .

    ? Ejemplo: C y threads en POSIX

    ? Utilizando construcciones lingüísticas (o clases) de un lenguaje deprogramación que admita concurrencia

    ? Ejemplo: Tareas en Ada95, threads en Java

  • 8/16/2019 tema3_Procesos

    38/98

    38Sistemas Operativos I (00-01) Tema 3: Procesos

    Llamada Descripciónpthread_create (thread_id, attr, func, args) Crea un nuevo hilo de ejecución. El hilo de

    ejecución empieza en func y se le pasan losparámetros args.

    pthread_exit (status) El hilo que la invoca finaliza su ejecución.

    pthread_join (thread_id) Suspende la ejecución del hilo que invocaesta llamada, hasta que el thread_id acabe.

    pthread_t pthread_self () Devuelve el identificador del thread que lainvoca.

    3.- Hilos de ejecución (threads)? Threads en POSIX: llamadas básicas

  • 8/16/2019 tema3_Procesos

    39/98

    39Sistemas Operativos I (00-01) Tema 3: Procesos

    3.- Hilos de ejecución (threads)

    #include #include

    void * process(void * arg){printf("%s ", (char *) arg);fflush(stdout);pthread_exit (0);

    }

    int main(){pthread_t th_a, th_b ;

    pthread_create (&th_a, NULL, process, "Hello");pthread_create (&th_b, NULL, process, "World");sleep (1);

    }

    #include #include

    void * process(void * arg){printf("%s ", (char *) arg);fflush(stdout);pthread_exit (0);

    }

    int main(){pthread_t th_a, th_b ;

    pthread_create (&th_a, NULL, process, "Hello");pthread_create (&th_b, NULL, process, "World");sleep (1);

    }

    ? Threads en POSIX: un ejemplo

  • 8/16/2019 tema3_Procesos

    40/98

    40Sistemas Operativos I (00-01) Tema 3: Procesos

    ? Ada permite la programación deactividades concurrentes.

    ? La facilidad Ada que permiteprogramar estas actividades es el tipode datos task.

    ? El tipo tarea debe ser especificado enprimer lugar y posteriormenteimplementado.

    ? Las tareas Ada comparten memoria yse comunican y sincronizan mediantecitas y/o objetos protegidos .

    ? Pueden declararse objetos tareadirectamente omitiendo type . En este

    caso no pueden definirse variables.? Cada tarea dispone de una copia de

    las variables locales declaradas.

    task type Niño;

    task body Niñois

    Sueño: Boolean;Edad: Natural;

    beginloop

    Dormir;loop

    Comer;Jugar_O_Incordiar;exit when Sueño

    end loop ;exit when Edad > ...

    end loop ;

    end Niño; Victor,Santiago,Gabriela: Niño;

    task type Niño;

    task body Niñois

    Sueño: Boolean;Edad: Natural;

    beginloop

    Dormir;

    loopComer;Jugar_O_Incordiar;exit when Sueño

    end loop ;exit when Edad > ...

    end loop ;end Niño;

    Victor,Santiago,Gabriela: Niño;

    3.- Threads en Ada: Declaración

  • 8/16/2019 tema3_Procesos

    41/98

    41Sistemas Operativos I (00-01) Tema 3: Procesos

    ? Cuando un programa Ada

    comienza, se crea la tarea principal,la cual ejecuta el subprogramaprincipal.

    ? Cuando se declara una variable deltipo task , el soporte en tiempo deejecución del lenguaje Ada crea un

    hilo de ejecución (proceso ligero)dentro del proceso que estáejecutando el programa.

    ? Una tarea comienza su ejecucióncuando comienza la ejecución de launidad (maestra) donde se declara.

    ? La unidad de ejecución maestrasólo finaliza cuando finalizan todaslas tareas que dependen de ella.

    procedure Guarderia is

    task type Niño;

    task body Niñois

    ------end Niño;

    Victor,Santiago,Gabriela: Niño;

    begin

    -- unidad maestra;

    end Guarderia;

    procedure Guarderia is

    task type Niño;

    task body Niñois

    ------end Niño;

    Victor,Santiago,Gabriela: Niño;

    begin

    -- unidad maestra;

    end Guarderia;

    InicianGuarderia ylos tres niños

    InicianGuarderia ylos tres niños

    Guarderiaespera laterminaciónde los tresniños

    Guarderiaespera laterminaciónde los tresniños

    3.Threads en Ada: activación y finalización

  • 8/16/2019 tema3_Procesos

    42/98

    42Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.

    8.- S.O. dirigido por eventos.

  • 8/16/2019 tema3_Procesos

    43/98

    43Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación? Recursos reutilizables en serie

    ? Escasez de recursos : el número de recursos es inferior al número deprocesos que compiten por ellos.

    ? Recursos reutilizables en serie : aquellos que sólo pueden estarasignados a un proceso en un instante de tiempo dado. Ejemplos:Impresoras, CPU.

    ? Planificación de recursos : Con recursos reutilizables en serie el s.o.tiene que aplicar una política para asignar recursos a los procesos.

  • 8/16/2019 tema3_Procesos

    44/98

    44Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación

    Salvar contexto en PCB #1

    Cargar contexto desde PCB #3

    P1

    P2

    Sistema operativo

    1

    2

    3

    Ejecución

    Ejecución

    Interrup. ollamada alsistema

    Interrup. ollamada al sist

    P3

    Ejecución

    Salvar contexto en PCB #2

    Cargar contexto desde PCB #2

    -- Tratamiento

    -- Tratamiento

    PLANIFICADOR:escoger nuevo proceso

    PLANIFICADOR:escoger nuevo proceso

    4

  • 8/16/2019 tema3_Procesos

    45/98

    45Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación? Planificador

    Elemento del sistema operativo que determina a qué proceso se le asigna un

    determinado recurso (p. e. CPU) en cada instante de tiempo, de acuerdo conalguna política.

    En el caso de que el recurso a asignar sea la CPU se distinguen entre tresplanificadores:

    ? Planificador a largo plazo.

    ? Planificador a medio plazo

    ? Planificador a corto plazo.

  • 8/16/2019 tema3_Procesos

    46/98

    46Sistemas Operativos I (00-01) Tema 3: Procesos

    Diagrama de colas del sistema

    Procesoterminado

    Cola de procesospreparados CPU

    Cola de procesosesperando sucesoSuceso

    Cola de procesosesperando E/SE/S

    Planificador alargo plazo

    Planificador acorto plazoCola de procesos

    esperando ejecución

    Procesonuevo

    Expulsión

    Recursos

    Colas …

    Cola de procesos

    intercambiadosa discoPlanificador amedio plazo Planificador a

    medio plazo

  • 8/16/2019 tema3_Procesos

    47/98

    47Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación? Planificador a largo plazo

    ? En un sistema de procesos por lotes, los procesos recién incorporados

    permanecen detenidos en una cola de procesamiento por lotes, en eldisco. El planificador a largo plazo creará procesos a partir de la colacuando sea posible.

    ? Dos son las decisiones que toma el planificador a largo plazo:

    ? Cuando crear un nuevo proceso: controla el grado de multiprogramación.? Cuál va a ser el siguiente proceso a admitir: algoritmo FCFS (firts_come, first-

    served), tener en cuenta prioridades, tiempos de ejecución esperados,exigencias E/S.

    ? Controla el grado de multiprogramación : conjunto de procesos queresiden simultáneamente en memoria y se ejecutan concurrentemente.

    ? Selecciona procesos de la cola de procesos que están esperando serejecutados y los carga en memoria.

    ? Se ejecuta con poca frecuencia, ya que pueden transcurrir minutos entrela creación de nuevos procesos en el sistema.

  • 8/16/2019 tema3_Procesos

    48/98

    48Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación? Planificador a medio plazo

    ? Cuando un usuario se conecta al sistema, se genera una solicitud decrear un proceso, los usuarios de tiempo compartido no pueden serpuestos en una cola y esperar a que el sistema pueda aceptarlos.

    ? En ocasiones es interesante sacar procesos de memoria para reducir elgrado de multiprogramación o para mejorar la mezcla de procesos(orientados a CPU o E/S).

    ? Se encarga de controlar qué procesos, de entre todos los iniciados debenestar en memoria y qué otros deben estar en el espacio de intercambio.

    ? El planificador a medio plazo se encarga de sacar el proceso y volverlo aintroducir más tarde. El proceso continuará su ejecución a partir del puntodonde se había quedado.

    ? A este esquema comúnmente se le denomina “swapping”.

  • 8/16/2019 tema3_Procesos

    49/98

    49Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación

    ? Planificador a corto plazo

    ?

    Selecciona un proceso de la cola de procesos preparados para ejecucióny le asigna la CPU.

    ? Se ejecuta con mucha frecuencia. El proceso seleccionado quizás seejecute únicamente durante unos milisegundos antes de iniciar unasolicitud de E/S.

    ?

    Se ejecuta cuando ocurre un evento que conduce a la interrupción delproceso actual, expulsando el proceso a favor de otro. Ejemplos deeventos:

    ? Interrupciones de reloj.? Interrupciones de E/S.

    ? Llamadas al sistema operativo.? Señales.

  • 8/16/2019 tema3_Procesos

    50/98

    50Sistemas Operativos I (00-01) Tema 3: Procesos

    4.- Concepto de planificación? Procesos orientados a CPU u orientados a E/S

    ? Un proceso orientado a CPU es aquel que invierte la mayor parte de su

    tiempo en efectuar cálculos y genera solicitudes de E/S con pocafrecuencia.

    ? Un proceso orientado a E/S es aquel que emplea más tiempo en realizarE/S que en efectuar cálculos.

    El planificador a largo plazo debe seleccionar una mezcla adecuada deprocesos orientados a CPU y orientados a E/S.

    Proceso orientado a CPU

    CPU E/S CPU E/S CPU

    CPU E/S CPU E/S CPU

    Proceso orientado a E/S

  • 8/16/2019 tema3_Procesos

    51/98

    51Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.

    8.- S.O. dirigido por eventos.

  • 8/16/2019 tema3_Procesos

    52/98

    52Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Criterios de planificación

    Algunos de los criterios y características que un planificador debe conseguir son:

    ? Utilización: Los recursos se han de mantener tan ocupados como sea posible.

    ? Tiempo_recurso_ocupado / Tiempo_total

    ? Rendimiento: Maximizar el número de tareas procesadas por unidad de tiempo.

    ? Número_de_trabajos_terminados / Tiempo_total

    ? Tiemp o de retorno: Tiempo que tarda en ejecutarse un proceso.

    ? Tiempo de salida - Tiempo de entrada = ? TCPU + ? TE/S + ? TColas

  • 8/16/2019 tema3_Procesos

    53/98

    53Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Criterios de planificación (2):

    ? Tiempo de espera:

    ? Tiempo que un proceso está en la cola de procesos preparados.

    ? Tiempo de respuesta:

    ? Tiempo que transcurre desde que se presenta una solicitud hasta queel sistema comienza a contestar (en procesos interactivos).

    ? Equidad:? Garantizar que cada proceso obtiene la proporción justa de CPU. Es

    decir, que los procesos sean tratados de manera igualitaria. Loopuesto a equidad sería inanición.

  • 8/16/2019 tema3_Procesos

    54/98

    54Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Optimización de los criterios de planificación.

    No se pueden optimizar todos los criterios a la vez porque algunos de ellos

    son contrapuestos. Cada tipo de sistema tiene sus prioridades:? Sistema p or lotes: Maximizar utilización y rendimiento y minimizar el

    tiempo de retorno y de espera.

    ? Sistemas interact ivos: Proporcionar equidad y hacer el tiempo derespuesta razonable y predecible.

    ? La multiprogramación en sí misma supone una mejora de muchos de loscriterios anteriores respecto a la ejecución secuencial.

    ? Los algoritmos de planificación también tienen como objetivo mejorar

    algunos de los criterios mencionados.

  • 8/16/2019 tema3_Procesos

    55/98

    55Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Ejemplo: SIN MULTIPROGRAMACIÓN

    E/SCPU E/SCPU CPU E/SCPU E/SCPU CPU

    Proceso P0 Proceso P1

    Utilización CPU = 6/10 = 60Productividad = 2 trabajos/10 = 0.2Tiempo de retorno = (5+10)/2 = 7.5

    Utilización CPU = 6/10 = 60Productividad = 2 trabajos/10 = 0.2Tiempo de retorno = (5+10)/2 = 7.5

    Utilización CPU = 100%Productividad = 2 trabajos /6 = 0.33Tiempo de retorno = (5 + 6)/2 = 5.5Este representa un caso extremo.En el caso de TCPU

  • 8/16/2019 tema3_Procesos

    56/98

    56Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Histograma de intervalos de tiempo de CPU

    ? Gran número de

    ráfagas de CPU decorta duración

    ? Pequeño númerode ráfagas de CPUde larga duración.

    duración de ràfaga (pulsos de reloj)

    frecuencia

    20

    40

    60

    80

    100

    120

    140

    160

    8 16 24 32

  • 8/16/2019 tema3_Procesos

    57/98

    57Sistemas Operativos I (00-01) Tema 3: Procesos

    5.- Criterios de planificación? Para mejorar la utilización de la CPU se podría:

    ? Aumentar el grado de multiprogramación (mientras la memoria lo permita).

    ? Adoptar un algoritmo de planificación adecuado que optimice el orden deejecución de los procesos.

    ? Para conseguir un algoritmo de planificación óptimo se podría:

    ? Determinar qué parámetros se quiere optimizar.

    ? Conocer el tipo de comportamiento de los procesos.

  • 8/16/2019 tema3_Procesos

    58/98

    58Sistemas Operativos I (00-01) Tema 3: Procesos

    Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.6.- Algoritmos de planificación.7.- Evaluación de Algoritmos .

    8.- S.O. dirigido por eventos.

  • 8/16/2019 tema3_Procesos

    59/98

    59Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Objetivo

    Decidir a cuál de los procesos que están en la cola de procesos listos se le

    asignará la CPU.? Clasificación de algoritmos de planificación:

    ? Por orden de llegada (FCFS).

    ? Circular (RR, round-robin)

    ? Por prioridades

    ? Sin expulsión (“ Non preemptive ”) / Con expulsión (“ Preemptive ”)? Estáticos / Dinámicos

    ? Combinación de algoritmos: Clases de prioridades.

  • 8/16/2019 tema3_Procesos

    60/98

    60Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Servicio por orden de llegada ( FCFS : “first-come, first-served”)

    La CPU es asignada a todos los procesos en el mismo orden que lo solicitan.

    Proceso T. llegada T. CPUP1 0 24P2 0 3P3 0 3

    0 24 27 30

    P1 P2 P3

    Caso 1) Orden de llegada

    P1, P2, P3

    T. de espera medio:(0 + 24 + 27) / 3 = 17

    0 3 6 30

    P1P2 P3

    Caso 2) Orden de llegada

    P2, P3, P1

    T. de espera medio:(6 + 0 + 3) / 3 = 3

  • 8/16/2019 tema3_Procesos

    61/98

    61Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Servicio por orden de llegada ( FCFS : “first-come, first-served”)

    ? Propiedades? Sin expulsión: Cuando un proceso tiene asignada la CPU, la conserva hasta que

    desee liberarla, bien sea porque finaliza o por solicitud de una E/S.

    ? Ventajas? Fácil de implementar

    ? Inconvenientes? No optimiza el tiempo de espera: es muy variable en función del orden de llegada

    de los procesos y la duración de los intervalos de CPU.

    ? Efecto convoy: Los trabajos largos retrasan a los cortos (por ejemplo: piense en unsistema con un único trabajo con largas ráfagas de CPU y muchos trabajos conráfagas cortas de CPU).

    ? No es adecuado para sistemas interactivos: Por ser sin expulsión un trabajo conuna ráfaga de CPU larga puede provocar una espera larga a otros usuarios.

  • 8/16/2019 tema3_Procesos

    62/98

    62Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Prioridad al trabajo más breve ( SJF : shortest job first )

    ? Se asocia a cada trabajo (proceso) el tiempo del siguiente intervalo deCPU.

    ? Se asigna la CPU al trabajo con menor tiempo asociado.

    ? Sin expulsión: cuando un proceso tiene asignada la CPU, la conservahasta que desee liberarla.

    l d l f ó

  • 8/16/2019 tema3_Procesos

    63/98

    63Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Ejemplo: Prioridad al trabajo más breve (SJF).

    Procesos Instante de llegada DuraciónP1 0 7P2 2 4P3 4 1P4 5 4

    SJF (sin expulsión)

    •Media del tiempo de espera: (0 + 6 + 3 + 7) / 4 = 4

    0 7 8 12

    P1 P2P3 P4

    16

    Tiempo de espera medio: (0 + 6 + 3 + 7) / 4 = 4

    6 Al i d l ifi ió

  • 8/16/2019 tema3_Procesos

    64/98

    64Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Variante con expulsión del SJF ( SRTF: Shortest Remaining Time First )

    Prioridad al que le resta menos tiempo (para finalizar).

    ? La CPU es asignada al proceso que le queda menos tiempo para acabarla ráfaga de CPU en curso.

    ? Variante con expulsión de SJF: Si llega un proceso con un intervalo deCPU inferior al tiempo que le falta al proceso en ejecución paraabandonar la CPU, entonces el nuevo proceso se hace con la CPU.

    6 Al i d l ifi ió

  • 8/16/2019 tema3_Procesos

    65/98

    65Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Ejemplo del SRTF. Procesos T. Llegada Duración

    P1 0 7P2 2 4

    P3 4 1P4 5 4

    0 7 11

    P1 P2 P3 P4

    16

    P1P2

    2 4 5

    Diagrama de Gantt

    Media del tiempo de espera: (9 + 1 + 0 + 2 ) / 4 = 3

    Cronograma por procesos

    P1

    P2

    P3

    P4

    6 Al i d l ifi ió

  • 8/16/2019 tema3_Procesos

    66/98

    66Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? SRTF: Shortest Remaining Time First

    ? Ventajas

    ? SRTF optimiza la media de tiempo de espera.

    ? Inconvenientes

    ? El tiempo del siguiente intervalo de CPU es difícil de predecir. Esto lohace difícil de implementar para un planificador a corto plazo.(En los

    sistemas por lotes el usuario puede aportar información).? Posibilidad de inanición: los trabajos largos no se ejecutarán mientras

    haya trabajos cortos.

    6 Al i d l ifi ió

  • 8/16/2019 tema3_Procesos

    67/98

    67Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación SJF/SRTF

    Aunque no se conoce la longitud de la siguiente ráfaga se puede predecir su valor

    esperando que sea de longitud similar a las anteriores.? Estimación del siguiente intervalo de CPU

    Se utiliza la media exponencial:

    T n+1 = ? tn + (1 - ? ) T n?

    tn: tamaño real del n-ésimo intervalo de CPU? Tn: Tamaño estimado del n-ésimo intervalo de CPU.

    ? ? : coeficiente exponencial 0 ? ?? ?? ?

    ? Caso ? ? = 1, los datos históricos son irrelevantes y sólo tiene importancia la ráfaga másreciente de CPU. T n+1 = tn

    ? Caso ? = 0, la historia reciente no tienen efecto, se supone que las condiciones actualesson transitorias. T n+1 = Tn

    ? Es habitual que ? = 1/2, por lo que la historia reciente y antigua se ponderan de igualmanera.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    68/98

    68Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación SJF/SRTF

    ? Estimación del siguiente intervalo de CPU

    Desarrollando la fórmula y sustituyendo T n+1 por t n llegamos a:

    T n+1 = ? tn + (1 - ? ) ? tn-1 + … + (1 -? ) j ? tn-j + … + (1 -? )n+1 T0Puesto que tanto (1 - ? ) como ? sonmenores o iguales que 1 cada términosucesivo tiene menos peso que el anterior.

    Ejemplo de promedioexponencial para? = 1/2, y T0= 10

    Ráfaga de CPU: 6 4 6 4 13 13 13Predicción: 10 8 6 6 5 9 11

    2

    4

    6

    8

    10

    12

    l o n g

    i t u

    d d

    e r

    á f a

    g a

    tiempo

    6 Al it d l ifi ió

  • 8/16/2019 tema3_Procesos

    69/98

    69Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación por prioridades

    ? Se asocia a cada proceso un número (entero), llamado prioridad de

    acuerdo con algún criterio.? Se asigna la CPU al trabajo con mayor prioridad (normalmente, mayor

    número).

    ? Ejemplo:

    ?

    SJF es un caso particular de prioridades en el que la prioridad es 1/T.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    70/98

    70Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Ejemplo:

    ? Planificación prioridades

    0 7 11

    P1 P2 P3 P4

    16

    P1P2

    2 4 5

    Diagrama de Gantt

    Cronograma por procesos

    P1

    P2

    P3

    P4

    Procesos T. Llegada Duración PrioridadP1 0 7 5

    P2 2 4 10

    P3 4 1 15

    P4 5 4 10

    6 Alg it d l ifi ió

  • 8/16/2019 tema3_Procesos

    71/98

    71Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación por Prioridades: Variantes

    ? Algoritmos con expulsión/sin expulsión.

    ? Prioridades estáticas/dinámicas.

    ? Prio rid ades est átic as: La prioridad se asigna antes de la ejecución yno cambia.

    ? Prio rid ades din ám icas : La prioridad cambia con el tiempo.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    72/98

    72Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación por prioridades

    ? Problema de inanición

    Un algoritmo de prioridades es inherentemente poco equitativo. El problema extremoes:

    ? Inanición: Los procesos con baja prioridad no se ejecutan nunca.

    ? Solución:

    ? Actu alización de prioridades: Esquema de prioridades dinámicas, donde laprioridad de un proceso aumenta con el tiempo de espera.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    73/98

    73Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación circular ( RR : Round Robin )

    ? A cada proceso se le asigna una pequeña cantidad de tiempo de CPU,

    llamada “ quantum” de tiempo, normalmente 10-100mseg.Si el proceso tiene un intervalo de CPU mayor que el “ quantum” , entonceses expulsado de la CPU y añadido a la cola de procesos listos.

    ? Si hay n procesos, cada uno obtiene 1/n del tiempo de la CPU enintervalos de q unidades, como máximo.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    74/98

    74Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Ejemplo:

    ? Planificación circular

    0 15 19

    P1 P2

    304 7 11

    Diagrama de Gantt

    P3 P1 P3 P1 P3 P1

    23 26Cronograma por procesos

    P1

    P2

    P3

    Procesos T. Llegada DuraciónP1 0 16P2 0 3P3 0 11Quantum q=4

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    75/98

    75Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación circular

    ? Valor del “ quantum” de tiempo

    ? Para q grandes : el algoritmo degenera en un algoritmo FCFS.

    ? Para q pequeños : q ha de ser grande respecto al tiempo necesario parael cambio de contexto, sino la sobrecarga introducida es muy alta.

    Regla práctica : El 80% de los intervalos de CPU han de ser inferiores al“quantum ” de tiempo.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    76/98

    76Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación circular

    ? Propiedades:

    ? Equitativo.

    ? El tiempo de espera máximo está limitado por (n -1)q, antes de recibir susiguiente cuanto de tiempo.

    ? El tiempo de retorno medio varía con el cuanto de tiempo.

    En general es peor que el del algoritmo SRTF. Mejora si un porcentaje altode trabajos acaban antes de que acabe el cuanto de tiempo.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    77/98

    77Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación con múltiples colas

    Los procesos se pueden clasificar fácilmente en distintos grupos (interactivos,

    por lotes, etc.). La cola de procesos preparados consiste en realidad endiversas colas

    ? Cada cola ha de tener su propio algoritmo de planificación.

    ? Ha de haber un algoritmo de planificación entre colas.

    6 Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    78/98

    78Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Ejemplo de algoritmo de

    planificación entre colas:?

    Prioridades estáticas : Losprocesos en cola con menorprioridad no se ejecutanmientras haya procesos encola con mayor prioridad.Posibilidad de inanición.

    ? Cuotas de tiempo : Cadacola está asignada a unporcentaje del tiempo deCPU. Ejemplo: el 80% atrabajos interactivos y el 20%a trabajos por lotes. Colas de procesos preparados

    FCFS (prio. 10)

    PRIO (prio. 8)

    RR (prio. 6)

    SJF (prio. 4)

    ProcesosSistema

    Usuarios privilegiados

    Procesos

    Interactivos

    ProcesosPor Lotes

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    79/98

    79Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Planificación con múltiples colas realimentadas.

    ? Existen diferentes colas de procesos preparados.

    ? Cada cola posee:

    ? Política de planificación.? Una prioridad asignada.

    ? Un proceso puede cambiar de cola de acuerdo con un esquema de

    actualización de prioridades:? Los procesos con un tiempo de espera acumulado elevado son

    promocionados a una cola con prioridad superior.? Los procesos con un tiempo de utilización de la CPU elevado son

    degradados a una cola con prioridad inferior.

  • 8/16/2019 tema3_Procesos

    80/98

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    81/98

    81Sistemas Operativos I (00-01) Tema 3: Procesos

    6.- Algoritmos de planificación? Múltiples colas realimentadas

    ? Parámetros de las colas realimentadas:

    ? Número de colas.

    ? Prioridad de cada cola.

    ? Método de promoción de un proceso.

    ? Método de degradación de un proceso.

    ? Método para determinar la cola de entrada de un proceso.

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    82/98

    82Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificaciónPlanificación en UNIX SVR2? Algoritmo de colas multinivel realimentadas.

    ? La prioridad es mayor cuanto menor sea el número asignado.

    ? Los procesos que se ejecutan a nivel de usuario tienen prioridades por encima delvalor base (base = 60 en UNIX SVR2).

    ? Los procesos que se ejecutan en el núcleo (debido a que han efectuado unallamada al sistema) tienen una prioridad cuyo valor se encuentra comprendido

    entre 0 y valor base-1.

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    83/98

    83Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificaciónPlanificación en UNIX SVR2? Las colas tienen un algoritmo RR con quantum de 1seg.

    ? Asignación dinámica de prioridades, de acuerdo con:? El proceso en ejecución incrementa su uso de CPU en una unidad, cada pulso de

    reloj (60 veces por segundo).

    ? Cada segundo se divide el uso de CPU por 2 y se recalcula la nueva prioridadcon:

    ? Uso CPU= uso CPU/2? Nueva prioridad = valor base + uso CPU /2? La base puede empeorarse con la llamada “nice”

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    84/98

    84Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificaciónPlanificación en UNIX SVR2? Cambios entre modo usuario y núcleo.

    ? Cuando un proceso realiza una llamada al sistema, no altera su prioridada menos que deba suspenderse.

    ? Cuando un proceso es suspendido en el núcleo adquiere una prioridadde núcleo (< 60) que únicamente depende de la razón que le ha llevado asuspenderse y no de su prioridad de usuario.

    ? Ejemplo: (A>>B, significa que A es más prioritario que B, y por tanto A tienemenor número de prioridad que B)

    ? Espera de operación en disco >> Espera de entrada de teclado >> Espera definalización de escritura en pantalla >> Espera de terminación de proceso hijo(ver figura transparencia 85).

    ? Cuando un proceso finaliza una llamada al sistema, recupera la prioridadque tenía antes de suspenderse dentro del núcleo.

    ? Aunque el planificador sea expulsivo, un proceso no puede ser expulsadomientras se ejecute dentro del núcleo.

    6 - Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    85/98

    85Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificación

    Esperando finalización hijo

    Espera E/S por terminal

    Esperando buffer de disco

    Esperando E/S de disco

    Prioridad de usuario 0

    Prioridad de usuario 1

    Prioridad de usuario 2

    Prioridad de usuario 3

    60

    61

    62

    63

    59

    58

    57

    56

    Procesos esperandoen modo usuario

    Procesos esperandoen modo k er n e l

    .

    ..

    .

    .

    .Prioridadmás alta

    Prioridad

    más baja

    Planificación en UNIX

    Planificación en UNIX

  • 8/16/2019 tema3_Procesos

    86/98

    86Sistemas Operativos I (00-01) Tema 3: Procesos

    Planificación en UNIXProceso A Proceso B Proceso CTiempo

    Prioridad t. CPU Prioridad t. CPU Prioridad t. CPU0 60 0

    1

    .60

    60 0 60 0

    1 75 30 60 01.

    60

    60 0

    2 67 15 75 30 60 01

    .603 63 7

    8.

    67

    67 15 75 30

    4 76 33 63 78

    .67

    67 15

    5 68 16 76 33 63 7

    ? SUPUESTOS:

    ? A, B, C se crean simult.Los procesos no hacen

    llamadas al sistema? Prioridad inicial =

    Prioridad base = 60

    ? El menor valor para laprioridad de usuario esel valor base (60), que asu vez indica la clase demayor prioridad.

    ? El reloj interrumpe alsistema 60 veces/seg.

    ? Cada segundo calcula:

    t.CPU= t.CPU/2

    prioridad= (t.CPU/2) + 60

    6.- Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    87/98

    87Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificación? Un ejemplo: Planificación de hilos

    I/Ot10

    t11

    t12

    0 1 32

    P1

    t20

    0 5

    P2

    ? Algoritmo del sistema operativo? Round Robin (RR)

    cuanto = 2

    ? Algoritmo biblioteca threads

    ? Turno de llegada (FCFS)

    ? Algoritmo del sistema operativo? Round Robin (RR)

    cuanto = 2

    ? Algoritmo biblioteca threads? Turno de llegada (FCFS)

    6.- Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    88/98

    88Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificación

    Threads a nivelde núcleo

    Threads de usuario

    _

    P1 P2

    Núcleo

    t10t11

    t12 t20

    tn1 tn2

    _

    P1 P2

    Núcleo

    tn1 tn4

    t10

    t11t12 t20

    tn2tn3

    _

    P1 P2

    Núcleo

    Threads híbridos

    t10t11

    t12 t20

    tn1 tn2tn3

    ? Un ejemplo: Planificación de hilos

    6.- Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    89/98

    89Sistemas Operativos I (00-01) Tema 3: Procesos

    6. Algoritmos de planificación? Planificación de hilos a nivel de núcleo

    0 1 3 4 6 8 117

    tn1 tn4

    t10 t11 t12 t20

    tn2 tn3 tn1 tn2 tn4

    t20t10 t11

    Usuario

    Núcleo

    I/Ot10

    t11

    t12

    0 1 32

    P1

    t20

    0 5

    P2 _

    P1 P2

    Núcleo

    tn1 tn4

    t10t11

    t12 t20

    tn2tn3

    6.- Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    90/98

    90Sistemas Operativos I (00-01) Tema 3: Procesos

    g p? Planificación de hilos a nivel de usuario

    0 1 3 5 7 8 9 10 11

    tn1

    t10 t20 t11 t20

    tn2 tn1 tn2 tn1 tn2

    t20t11 t12

    Usuario

    Núcleo

    t10

    tn1

    I/Ot10

    t11

    t12

    0 1 32

    P1

    t20

    0 5

    P2 _

    P1 P2

    Núcleo

    t10t11

    t12 t20

    tn1 tn2

    6.- Algoritmos de planificación

  • 8/16/2019 tema3_Procesos

    91/98

    91Sistemas Operativos I (00-01) Tema 3: Procesos

    g p? Planificación de hilos en la aproximación híbrida

    0 1 3 5 7 8 9 10 11

    tn1

    t10 t20 t11 t20

    tn2 tn3 tn1 tn2 tn3

    t20t12 t10

    Usuario

    Núcleo

    t11

    tn2

    _

    P1 P2

    Núcleo

    t10t11

    t12 t20

    tn1 tn2tn3

    I/Ot10

    t11

    t12

    0 1 32

    P1

    t20

    0 5

    P2

    Tema 3: Procesos

  • 8/16/2019 tema3_Procesos

    92/98

    92Sistemas Operativos I (00-01) Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.8.- S.O. dirigido por eventos.

    7.- Evaluación de algoritmos

  • 8/16/2019 tema3_Procesos

    93/98

    93Sistemas Operativos I (00-01) Tema 3: Procesos

    g? Procesos en la selección de un algoritmo:

    ? (1) Selección de criterios (utilización CPU, t. respuesta, etc.).

    ? (2) Estudiar la adaptación de cada algoritmo a esos criterios.

    Es necesario evaluar para cada sistema cual es el algoritmo de planificaciónmás adecuado.

    7.- Evaluación de algoritmos

  • 8/16/2019 tema3_Procesos

    94/98

    94Sistemas Operativos I (00-01) Tema 3: Procesos

    g? Existen diferentes métodos para llevar a cabo dicha evaluación:

    ? Evaluación analítica : Dada la carga de trabajos producir una fórmula

    matemática del rendimiento para cada algoritmo de planificación.? Modelo determinista : Evaluar el rendimiento para cada caso

    particular de carga.? Modelos de colas : Caracterizar la carga con una distribución

    estadística (distribución exponencial).

    – Caracterizar la tasa de llegada de trabajos. – Caracterizar el tiempo de servicio de un recurso.

    – Hacer análisis estadístico de las redes de colas.

    Ejemplo: Fórmula de Little n = ? * E

    n: tamaño medio de la cola, ? tasa media de llegada, E: tiempo medio deespera en la cola.

    ? Simulaciones : Hacer un modelo, programarlo y ejecutarlo.

    Tema 3: Procesos

  • 8/16/2019 tema3_Procesos

    95/98

    95Sistemas Operativos I (00-01) Tema 3: Procesos

    ? Índice

    1.- Concepto de proceso.2.- Implementación de procesos.

    3.- Hilos de ejecución (threads).

    4.- Conceptos de planificación.

    5.- Criterios de planificación.

    6.- Algoritmos de planificación.

    7.- Evaluación de Algoritmos.

    8.- S.O. dirigido por eventos.

    8.- S.O. dirigido por eventos

  • 8/16/2019 tema3_Procesos

    96/98

    96Sistemas Operativos I (00-01) Tema 3: Procesos

    g p? El S.O. puede verse como un programa que atiende y sirve los eventos

    producidos por los procesos y los dispositivos.

    ?

    Cuando se da alguno de estos eventos cambia el estado de alguno delos procesos existentes en el sistema o el propio estado del sistemaoperativo.

    ? ¿ Qué podemos considerar un evento de este tipo ?

    ? Una llamada al sistema.

    ? Una interrupción de un dispositivo de E/S.

    ? Una interrupción de reloj.

    ? Una excepción provocada por el código de un proceso (Instruccionesilegales, acceso a memoria no asignada, divisiones por cero, ...).

    8.- S.O. dirigido por eventos

  • 8/16/2019 tema3_Procesos

    97/98

    97Sistemas Operativos I (00-01) Tema 3: Procesos

    g p

    Proceso actual

    Atención dellamadas

    Atención deexcepciones

    Suspensióndel proceso

    Terminacióndel proceso

    Activacióndel proceso

    Atención deinterrupciones

    Llamada

    Excepción

    IPC

    IPC,espera E/S

    Terminación

    Instr. ilegal,div. por cero

    Fallo de página

    Fin de E/S

    InterrupciónHW

    SISTEMAOPERATIVO

    Fin de esperatemporal

    Planificación

    Fin de quantum

    Flujo de control del S.O.

  • 8/16/2019 tema3_Procesos

    98/98

    Reloj Interrupción deperiféricoLlamada al

    SistemaExcepción del

    Procesador

    Realizar cambio de modo de ejecución (núcleo -> usuario). Recuperar contexto de usuario.

    Anotar elavance del

    tiempo

    Si tiempo límite

    excedido:Proceso enejecución

    a preparado

    Planificador:Selección del próximo proceso.

    Realizar cambio de contexto

    Pasar a preparadoal proceso

    que esperaba elfin de la E/S

    Finalizar elproceso enejecución

    Resolver la

    llamada alsistema

    Pasar asuspendido al

    proceso enejecución

    Crear hijo.

    Hijo apreparado

    Guardar parte del contexto de usuario, para realizar cambio de modo de ejecución (usuario->núcleo)

    Activación delSistema Operativo