Curso de Sistemas Operativos - Unidad Procesos e Hilos

7,649 views
7,383 views

Published on

.

Published in: Education
2 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total views
7,649
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
2
Likes
8
Embeds 0
No embeds

No notes for slide

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

×