PROCESOS E HILOS
  Juan Rafael Álvarez Correa
    jalvarez@debian.org




                               1
CAPITULOS

■   0 – Arquitectura del computador
■   1 – Introducción a los sistemas operativos
■   2 – Procesos e hilos
■  ...
PROCESO
■   Programa en ejecución
       Espacio de direcciones (Direcciones contiguas)
         ➔   Acceso uniforme a re...
HILO

■   Si el proceso solo tiene un hilo
       Es llamado un proceso clasico y su hilo es
        llamado hilo base
■ ...
MAQUINA ABSTRACTA

■   Simulación de una maquina real, mediante
    la multiplexación de memoria y CPU
       Procesos cl...
GESTION DE PROCESOS
■   Creación y terminación de hilos y procesos
■   Sincronización entre procesos/hilos
■   Reserva de ...
PROCESO HARDWARE Y TRAZA
■   Es el flujo simple de ejecución que realiza
    directamente la CPU
       BIOS
       Carg...
CAMBIO DE CONTEXTO

■   Para multiplexar la CPU (proporcionar
    varias maquinas abstractas)
       Se debe conmutar ent...
DESCRIPTOR DE PROCESO
■   Cuando el sistema operativo crea un
    proceso:
       Se crea un espacio de direcciones para ...
DESCRIPTOR DE PROCESO
■   Identificador del proceso
■   Relaciones (padre, hijos)
■   Propietario
       Usuario dueño de...
DESCRIPTOR DE HILO

■   Identificador del hilo
■   Relaciones
■   Estado
       El estado es diferente para cada hilo
■  ...
CONTEXTO

■   Contexto
       Estado de la CPU
■   Cambio de contexto
       Almacenar y restaurar el contexto
■   Tipos...
MULTIHILO

■   ¿Cuando una aplicación debe estar
    programada con multiples hilos?
       ¿Existen en una misma aplicac...
HILOS A NIVEL DE USUARIO

■   Caracteristicas
       La abstracción de hilo la realiza la aplicación
       El nucleo de...
GESTORES DE RECURSOS
■   Recurso
       Componentes de la maquina abstracta que son
        necesarios para un proceso
  ...
GESTORES DE RECURSO
■   Mecanismo
       Forma en la que se accede al gestor de recursos
        para la reserva o libera...
GESTORES DE RECURSOS
■   Reserva de recursos
       El proceso liviano/proceso clasico (parte activa
        del proceso)...
ESTADOS

■   Diagrama de estados
       Representa los diferentes estados en los que un
        hilo puede estar
       ...
MODELO DE 3 ESTADOS


                    Solicitud



    Hecho     En ejecución



        Solicitud              Ceder
...
MODELO DE 5 ESTADOS
■   Modelo que permite el control de un hilo
    por parte de otro hilo (controlador)
■   Se introduce...
PLANIFICADOR
■   Parte del gestor de procesos que se
    encarga de multiplexar la CPU en el tiempo
■   Cuando puede ser i...
PARTES DEL PLANIFICADOR
■   Encolador
       Ubica en la lista de listos un hilo que ha sido
        desalojado del proce...
CAMBIO DE CONTEXTO

■   Si el procesador no soporta conjuntos de
    registros, hay cambios de contexto ...
       Cuando...
CAMBIO DE CONTEXTO
■   Costo de cambio de contexto (sin cache)
       rg registros generales
       re registros de esta...
CONCEPTOS DE PLANIFICACIÓN

■   Prioridad
       Orden segun el cual un hilo puede ser puesto en
        ejecución estand...
MODELO DE PLANIFICACIÓN
■   S(Hi)={ejecución, listo, bloqueado}
■   Tiempo de servicio: Ts(Hi)
       Tiempo transcurrido...
MODELO DE PLANIFICACIÓN
■   Tiempo de vuelta: Tv(Hi)
       Tiempo transcurrido entre la primera entrada al
        estad...
MECANISMOS Y POLITICAS
■   Politica de planificación
       Cuando es el momento de desalojar el hilo del
        procesa...
MECANISMOS Y POLITICAS

■   Politicas
       No expropiativa
         ➔   Basado en la entrega voluntaria
       Expropi...
POLITICAS DE PLANIFICACIÓN
■   Criterios utilizados para identificar los hilos
    a ser ejecutados
■   No expropiativas
 ...
FCFS: FIRST COME FIRST SERVED
■   + prioridad = + viejo en la lista de listos
■   Implementación 1
         ➔   Encolador:...
SJN: SHORTEST JOB NEXT
■   + prioridad = – tiempo de servicio
■   Ventajas
       Minimiza Te
■   Desventajas
       Hi ...
PLANIFICACIÓN POR PRIORIDADES
■   + prioridad = asignada externamente
       Criterios arbitrarios
         ➔   Usuarios ...
PLANIFICACIÓN X TIEMPO LIMITE
■   Debe garantizarse Tv < Tl (tiempo limite)
■   El hilo no se acepta en el estado de listo...
EXPROPIATIVAS
■   Mas generales que las no expropiativas
       Politica no apropiativa = Politica apropiativa con
      ...
ROUND ROBIN
■   Distribución equitativa de tiempo entre
    todos los hilos que solicitan el procesador
■   Implementada g...
PRIORIDAD EXT + ROUND ROBIN
■   La prioridad externa se evalua primero
    como primer criterio de selección
■   Si la pri...
Próxima SlideShare
Cargando en…5
×

Curso de Sistemas Operativos - Unidad Procesos e Hilos

8.203 visualizaciones

Publicado el

.

Publicado en: Educación
2 comentarios
9 recomendaciones
Estadísticas
Notas
Sin descargas
Visualizaciones
Visualizaciones totales
8.203
En SlideShare
0
De insertados
0
Número de insertados
10
Acciones
Compartido
0
Descargas
0
Comentarios
2
Recomendaciones
9
Insertados 0
No insertados

No hay notas en la diapositiva.

Curso de Sistemas Operativos - Unidad Procesos e Hilos

  1. 1. PROCESOS E HILOS Juan Rafael Álvarez Correa jalvarez@debian.org 1
  2. 2. CAPITULOS ■ 0 – Arquitectura del computador ■ 1 – Introducción a los sistemas operativos ■ 2 – Procesos e hilos ■ 3 – Comunicación, concurrencia y bloqueos ■ 4 – Gestión de memoria ■ 5 – Entrada y salida ■ 6 – Gestión de archivos y directorios ■ 7 – Seguridad y protección ■ 8 – Sistemas distribuidos 2
  3. 3. PROCESO ■ Programa en ejecución  Espacio de direcciones (Direcciones contiguas) ➔ Acceso uniforme a recurso y control de acceso  Instrucciones (programa) ➔ Define el comportamiento del programa  Datos ➔ Variables estaticas y automaticas  Recursos ➔ Se le asignan recursos CPU y memoria y se pueden solicitar explicitamente (archivos)  Hilos ➔ Flujos de ejecución del programa 3
  4. 4. HILO ■ Si el proceso solo tiene un hilo  Es llamado un proceso clasico y su hilo es llamado hilo base ■ Si el proceso puede tener multiples hilos  Es llamado un proceso moderno  A cada hilo de un proceso moderno se le llama un proceso liviano  Por cada hilo existe una pila diferente, pues cada hilo puede ejecutarse a su propio ritmo  La unidad de planificación es el hilo o el proceso liviano y no el proceso moderno que lo contiene 4
  5. 5. MAQUINA ABSTRACTA ■ Simulación de una maquina real, mediante la multiplexación de memoria y CPU  Procesos clasicos ➔ Una motor de ejecución para cada proceso clasico  Procesos modernos ➔ Una motor de ejecución para cada proceso liviano ■ Interfaz de maquina abstracta  Instrucciones de la CPU de usuario  Llamadas al sistema 5
  6. 6. GESTION DE PROCESOS ■ Creación y terminación de hilos y procesos ■ Sincronización entre procesos/hilos ■ Reserva de recursos (solo CPU) ■ Cooperación con:  Gestor de memoria ➔ Implementar espacio de direcciones  Gestor de I/O ➔ Dispositivos con correlación a memoria ➔ Gestion de interrupciones - Reloj para expropiar - Dispositivos para cambios de estado en los procesos 6
  7. 7. PROCESO HARDWARE Y TRAZA ■ Es el flujo simple de ejecución que realiza directamente la CPU  BIOS  Cargador (Etapa1 y Etapa2)  Nucleo ➔ Gestor de procesos ➔ Gestor de memoria ➔ Gestor de dispositivos ➔ Gestor de archivos  Proceso inicial (init -generalmente PID=0-) ➔ SYSV y BSD 7
  8. 8. CAMBIO DE CONTEXTO ■ Para multiplexar la CPU (proporcionar varias maquinas abstractas)  Se debe conmutar entre procesos periodicamente  La conmutación implica almacenar el estado del procesador, correspondiente al proceso ... actual (contexto) y ubicar el estado de otro proceso ... en el procesador  ¿Como se logra esto? ➔ El reloj emite una interrupción a intervalos regulares para propiciar la invocación en el gestor de procesos del planificador: Componente responsable de seleccionar un nuevo proceso para ejecutar 8
  9. 9. DESCRIPTOR DE PROCESO ■ Cuando el sistema operativo crea un proceso:  Se crea un espacio de direcciones para el proceso  Estructuras de datos del sistema operativo para representar el proceso ... ➔ Descriptor de proceso ... ■ Cuando se termina un proceso estas estructuras se eliminan ■ Anti-Ing de Software: El gestor de dispositivos accede directamente la estructura 9
  10. 10. DESCRIPTOR DE PROCESO ■ Identificador del proceso ■ Relaciones (padre, hijos) ■ Propietario  Usuario dueño del proceso ■ Espacio de direcciones  Comun a todos los hilos ■ Recursos  Archivos abiertos ■ Referencias a los hilo(s) 10
  11. 11. DESCRIPTOR DE HILO ■ Identificador del hilo ■ Relaciones ■ Estado  El estado es diferente para cada hilo ■ Estadisticas de ejecución ■ Punteros de pila  Cada hilo tiene una pila separada ■ Recursos especificos ■ Contexto 11
  12. 12. CONTEXTO ■ Contexto  Estado de la CPU ■ Cambio de contexto  Almacenar y restaurar el contexto ■ Tipos  Cambio de contexto en interrupciones ➔ Por hardware y llamadas al sistema ➔ Cambio entre modo usuario y modo nucleo  Cambio de contexto entre procesos ➔ Cuando un nuevo proceso es planificado 12
  13. 13. MULTIHILO ■ ¿Cuando una aplicación debe estar programada con multiples hilos?  ¿Existen en una misma aplicación operaciones que no dependan de otras operaciones? ➔ Imprimir un documento, procesar click de mouse  ¿Existen pocos recursos que deban ser compartidos por los hilos?  ¿Esta preparado para los problemas de concurrencia?  ¿La aplicación puede ser dividida en varias responsabilidades? 13
  14. 14. HILOS A NIVEL DE USUARIO ■ Caracteristicas  La abstracción de hilo la realiza la aplicación  El nucleo desconoce la existencia de hilos  El cambio de contexto se hace en la aplicación  La planificación la realiza la aplicación ■ Desventajas  Un hilo puede monopolizar el procesador  La aplicación no usa la potencia de SMP  El bloqueo de un hilo, bloquea todos los hilos 14
  15. 15. GESTORES DE RECURSOS ■ Recurso  Componentes de la maquina abstracta que son necesarios para un proceso  Cualquier cosa que potencialmente detiene un proceso de ejecución ■ Comportamiento comun de los diferentes componentes del sistema operativo  Gestor de dispositivos (recurso = dispositivo)  Gestor de memoria (recurso = memoria)  Gestor de procesos (recurso = procesador)  Gestor de archivos (recurso = archivo) 15
  16. 16. GESTORES DE RECURSO ■ Mecanismo  Forma en la que se accede al gestor de recursos para la reserva o liberación de los mismos ➔ Funciones envolventes ➔ ABI para la invocación de trap ➔ Interrupción de reloj + ISR ■ Politica  Comportamiento especifico del gestor de recurso ➔ Implementación especifica en la reserva o liberación ➔ A quien se asigna? Cuando se asigna? 16
  17. 17. GESTORES DE RECURSOS ■ Reserva de recursos  El proceso liviano/proceso clasico (parte activa del proceso) es responsible de reservar explicitamente los recursos ➔ Recurso = no disponible, el proceso ... = “espera” ➔ Recurso = disponible, el proceso ... = continua ■ Tipos  Recursos reutilizables ➔ Se pueden reservar y devolver (CPU, memoria)  Recursos consumibles ➔ Una vez reservados no se devuelven (datos de entrada) 17
  18. 18. ESTADOS ■ Diagrama de estados  Representa los diferentes estados en los que un hilo puede estar  Las transiciones posibles de un estado a otro en el sistema operativo 18
  19. 19. MODELO DE 3 ESTADOS Solicitud Hecho En ejecución Solicitud Ceder Planifica Bloqueado Listo Inicio 19
  20. 20. MODELO DE 5 ESTADOS ■ Modelo que permite el control de un hilo por parte de otro hilo (controlador) ■ Se introducen los estados *suspendidos para reflejar la no autorización por parte del controlador 20
  21. 21. PLANIFICADOR ■ Parte del gestor de procesos que se encarga de multiplexar la CPU en el tiempo ■ Cuando puede ser invocado  Un hilo completa su función ➔ exit  Solicitud de un recurso no disponible ➔ read (de un socket al cual no llegan datos aun)  Abandono voluntario de la CPU ➔ pthread_yield o sched_yield  Desalojo involuntario de la CPU ➔ ISR de la interrupción de reloj (PIT) 21
  22. 22. PARTES DEL PLANIFICADOR ■ Encolador  Ubica en la lista de listos un hilo que ha sido desalojado del procesador. ■ Conmutador de contexto  Almacena el contexto del hilo a ser desalojado en el descriptor del hilo ■ Despachador o distribuidor  Selecciona un hilo de la lista de listos para ser ejecutado  Restaura en el procesador el contexto almacenado en el descriptor del hilo seleccionado 22
  23. 23. CAMBIO DE CONTEXTO ■ Si el procesador no soporta conjuntos de registros, hay cambios de contexto ...  Cuando ocurre una interrupción  Cuando el procesador conmuta de un proceso a otro ■ Si el procesador soporta conjuntos de registros, se asignan conjuntos diferentes a modo 0 y 1, y hay cambios de contexto ...  Cuando el procesador conmuta de un proceso a otro 23
  24. 24. CAMBIO DE CONTEXTO ■ Costo de cambio de contexto (sin cache)  rg registros generales  re registros de estado  i operaciones de almacenamiento por registro  t ciclos de reloj para almacenar en memoria  (rg + re) i * c ■ Ejemplo  (32 + 8) 1 * 100c = 4000c * 2 = 8000c 24
  25. 25. CONCEPTOS DE PLANIFICACIÓN ■ Prioridad  Orden segun el cual un hilo puede ser puesto en ejecución estando en estado de listo ■ Franja de tiempo (cuanto de tiempo)  Cantidad de tiempo entre interrupciones del temporizador ■ Inaniciación  Situación en la que un hilo puede no planificarse debido a caracteristicas de la politica 25
  26. 26. MODELO DE PLANIFICACIÓN ■ S(Hi)={ejecución, listo, bloqueado} ■ Tiempo de servicio: Ts(Hi)  Tiempo transcurrido total de un hilo en estado de ejecución  Cantidad de tiempo que el hilo ha consumido de la CPU para completar su tarea ■ Tiempo de espera: Te(Hi)  Tiempo transcurrido entre la primera entrada al estado listo hasta antes de estar por primera vez en ejecución  Tiempo que se demora un proceso en recibir su primera unidad de servicio del procesador 26
  27. 27. MODELO DE PLANIFICACIÓN ■ Tiempo de vuelta: Tv(Hi)  Tiempo transcurrido entre la primera entrada al estado listo hasta la salida definitiva del estado ejecución  Tiempo total en completar la ejecución del hilo una vez esta listo para ejecutarse ■ Variables a optimizar  En sistemas de procesamiento por lotes se debe optimizar el tiempo medio de vuelta  En sistemas de tiempo compartido se debe optimizar el “tiempo de espera” medio, interperpretado como el tiempo en estado listo. 27
  28. 28. MECANISMOS Y POLITICAS ■ Politica de planificación  Cuando es el momento de desalojar el hilo del procesador  Cual es el hilo elegible para ocupar el procesador ■ Mecanismo de planificación  Como se determina el momento de multiplexar el procesador ➔ Entrega voluntaria (ceder) e involuntaria (interrupción periodica) del procesador  Como se desalojara y asignara un hilo del procesador ➔ Detalles de la conmutación de contexto (SAVE_ALL) 28
  29. 29. MECANISMOS Y POLITICAS ■ Politicas  No expropiativa ➔ Basado en la entrega voluntaria  Expropiativa ➔ Basado en la entrega involuntaria ■ Mecanismos  Entrega voluntaria de la CPU ➔ Instrucción ceder (sched_yield, pthread_yield)  Entrega involuntaria de la CPU ➔ Interrupción periodica (Interrupción periodica) 29
  30. 30. POLITICAS DE PLANIFICACIÓN ■ Criterios utilizados para identificar los hilos a ser ejecutados ■ No expropiativas  FCFS: First Come First Served (aka FIFO)  SJB: Shortest Job Next  Planificación por prioridades  Planificación por tiempo limite ■ Expropiativas  RR: Round Robin  MFQ: Multilevel Freedback Queue  SRT: Shortest Remaining Time 30
  31. 31. FCFS: FIRST COME FIRST SERVED ■ + prioridad = + viejo en la lista de listos ■ Implementación 1 ➔ Encolador: Estampa tiempo de llegada ➔ Distribuidor: Selecciona hilo mas viejo ■ Implementación 2 (con estructura FIFO) ➔ Encolador: Ubica hilo en final de cola ➔ Distribuidor: Retira hilo de cabeza de la cola ■ Ventaja  Facil de implementar ■ Desventaja  No considera el Ts de un Hi 31
  32. 32. SJN: SHORTEST JOB NEXT ■ + prioridad = – tiempo de servicio ■ Ventajas  Minimiza Te ■ Desventajas  Hi con Ts grande y muchos Hj con Ts pequeños, hay alta probabilidad de inanición de Hi  ¿Como determinar el tiempo de servicio de forma anticipada? 32
  33. 33. PLANIFICACIÓN POR PRIORIDADES ■ + prioridad = asignada externamente  Criterios arbitrarios ➔ Usuarios con mas privilegios ➔ Tareas mas criticas desde la perspectiva del usuario ■ Tipos de prioridad  Estatica ➔ Solo se puede asignar al inicio del hilo  Dinamica ➔ Puede cambiar durante la ejecución del hilo ➔ Combinada con SJN soluciona el problema de la inanicion, si mas prioridad si mas tiempo sin servicio. 33
  34. 34. PLANIFICACIÓN X TIEMPO LIMITE ■ Debe garantizarse Tv < Tl (tiempo limite) ■ El hilo no se acepta en el estado de listo si el planificador no puede garantizar este tiempo limite ■ Sistemas de hard real time 34
  35. 35. EXPROPIATIVAS ■ Mas generales que las no expropiativas  Politica no apropiativa = Politica apropiativa con franja de tiempo igual al tiempo de servicio del hilo actual ■ REVISAR ESTA TRANSPARENCIA 35
  36. 36. ROUND ROBIN ■ Distribución equitativa de tiempo entre todos los hilos que solicitan el procesador ■ Implementada generalmente con un cola  Cuando un hilo es expropiado del procesador este va al final de la cola  Cuando un hilo es creado este va al final de la cola  Cuando un hilo debe ser seleccionado, se selecciona el que se encuentra al inicio de la cola 36
  37. 37. PRIORIDAD EXT + ROUND ROBIN ■ La prioridad externa se evalua primero como primer criterio de selección ■ Si la prioridad es la misma el criterio de selección es la posición en la cola 37

×