1 / 33

Hilos

Hilos. Capítulo 5 Silberschatz Galvin. Hilos. Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java. Hilos. Un hilo (o proceso ligero) es una unidad básica de utilización del CPU; consiste de: Contador de programa

Download Presentation

Hilos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hilos Capítulo 5 Silberschatz Galvin

  2. Hilos • Concepto • Beneficios • Hilos a nivel kérnel y a nivel usuario • Modelos multihilos • Hilos de Solaris 2 • Hilos de Java Sistemas Operativos

  3. Hilos • Un hilo (o proceso ligero) es una unidad básica de utilización del CPU; consiste de: • Contador de programa • Conjunto de registros • Espacio de stack Sistemas Operativos

  4. Hilos • Un hilo comparte con sus hilos pares: • Sección de código • Sección de datos • Recursos del sistema operativo • En conjunto se les conoce como proceso • Un proceso tradicional o pesado, es igual a una tarea con un hilo. Sistemas Operativos

  5. un proceso un hilo un proceso varios hilos varios procesos un hilo por proceso varios procesos varios hilos por proceso Hilos y procesos Sistemas Operativos

  6. Código Código Datos Archivos Datos Archivos Procesos con un solo hilo y con múltiples hilos Hilos Hilo Multi-hilo Mono-hilo Sistemas Operativos

  7. Modelos de procesos de un solo hilo y de muchos hilos Modelo de proceso multihilos Modelo de proceso de un solo hilo Hilo Hilo Hilo Bloque de control del hilo Bloque de control del hilo Bloque de control del hilo Bloque de control del proceso Stack del usuario Bloque de control del proceso Stack del usuario Stack del usuario Stack del usuario Espacio de direcciones del usuario Stack del Kernel Espacio de direcciones del usuario Stack del kernel Stack del kernel Stack del kernel Sistemas Operativos

  8. Multihilo • Sistema operativo que mantiene varios hilos de ejecución dentro de un mismo proceso. • MS-DOS soporta un solo hilo. • UNIX soporta múltiples procesos de usuarios, pero sólo un hilo por proceso. • Windows 2000, Solaris, Linux, Mac OS, OS/2 soportan múltiples hilos. Sistemas Operativos

  9. Hilos • En una tarea donde hay múltiples hilos, mientras un hilo servidor está bloqueado y esperando, otro hilo en la misma tarea puede ejecutarse. • Cooperación de múltiples hilos en la misma tarea aumenta la tasa de trabajos por unidad tiempo y mejora el rendimiento. • Aplicaciones que requieren compartir un buffer común (productor-consumidor) sacan provecho de la utilización de hilos. Sistemas Operativos

  10. Hilos • Los hilos proveen un mecanismo que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones. Sistemas Operativos

  11. Beneficios • Compartición de recursos • Economía • Utilización de arquitecturas de múltiples procesadores Sistemas Operativos

  12. Hilos a nivel usuario • El manejo de los hilos lo hace una librería de hilos a nivel usuario • Ejemplos • - Hilos POSIX • - Mach C-threads • - Hilos de Solaris Sistemas Operativos

  13. Hilos a nivel usuario (un CPU con dos núcleos) Proceso de usuario gestiona y planifica los múltiples hilos Nivel usuario Nivel kérnel (sistema operativo) Planificador del SO Hardware Core Core CPU Sistemas Operativos

  14. Ventajas de los hilos a nivel usuario Los hilos podían implementarse en las aplicaciones que se ejecutaban en sistemas operativos que no son capaces de planificar hilos • Ejemplo: Primeras implementaciones de UNIX Sistemas Operativos

  15. Desventajas de los hilos a nivel usuario El planificador del sistema operativo solo ve un hilo por proceso • No ve los hilos a nivel usuario • Usa un solo núcleo del procesador en un procesador que tiene más de un núcleo • No puede distribuir los hilos a nivel el usuario en los dos núcleos Sistemas Operativos

  16. Hilos a nivel kérnel • Soportados por el kérnel • Ejemplos • Windows 95/98/NT • Solaris • Linux • Mac OS Sistemas Operativos

  17. Hilos a nivel kernel (con un CPU con un solo núcleo) Nivel usuario Nivel kérnel (sistema operativo) Planificador del SO Hardware Core CPU Sistemas Operativos

  18. Hilos a nivel kernel (con un CPU con doble núcleo) Nivel usuario Nivel kérnel (sistema operativo) Planificador del SO Hardware Core Core CPU Sistemas Operativos

  19. Ventajas de los hilos a nivel kérnel El proceso de usuario no se tiene que encargar de la planificación de los hilos Si tenemos un procesador con más de un núcelo, el Sistema operativo puede planificar los hilos en diferentes núcleos Sistemas Operativos

  20. Modelos multihilos • Muchos a uno • Uno a uno • Muchos a muchos Sistemas Operativos

  21. Muchos a uno • Muchos hilos a nivel usuario mapeados a un hilo a nivel kérnel. • Usado en sistemas que no soportan hilos a nivel kérnel. Sistemas Operativos

  22. k Modelo muchos a uno Sistemas Operativos

  23. Relaciones entre estados de ULTs y estados de procesos Hilo 1 Hilo 2 Listo Ejecución Listo Ejecución Bloqueado Bloqueado Usuario Kernel Listo Ejecución Bloqueado Proceso B Sistemas Operativos

  24. Uno a uno • Cada hilo a nivel usuario corresponde a un hilo del kérnel. • Ejemplos: • - Windows 95/98/NT • - OS/2 Sistemas Operativos

  25. Hilo a nivel usuario Hilo a nivel kérnel k k k k Modelo uno a uno Sistemas Operativos

  26. Hilo a nivel usuario Hilo a nivel kérnel k k k Modelo muchos a muchos Sistemas Operativos

  27. Ejemplo de la arquitectura multihilo de Solaris Establecer Afinidad Proceso 2 Proceso 3 Proceso 4 Proceso 5 Proceso 1 Usuario Biblioteca de hilos L L L L L L L L L Núcleo P P P P P Hardware P Procesador L Proceso ligero Hilo a nivel de usuario Hilo del núcleo Sistemas Operativos

  28. Gestión de hilos básica • Un hilo tiene : • Un identificador (ID) • Una pila • Una prioridad de ejecución • Una dirección de inicio de ejecución. Sistemas Operativos

  29. Gestión de hilos básica(POSIX) • Se dice que un hilo es dinámico si se puede crear en cualquier instante durante la ejecución. • En POSIX : • los hilos se crean dinámicamente con la función pthread_create. • pthread_exit termina el hilo que la invoca. Sistemas Operativos

  30. Gestión de hilos básica (POSIX), ejemplo: • Programa que crea un hilo donde muestra el mensaje “Hola Mundo” • Para compilar el programa : • $ cc -D_REENTRANT thread2.c -o thread2 -lpthread Sistemas Operativos

  31. int main() { pthread_create(a_thread,funcion_hilo); pthread_join(a_thread); } Crea un hilo nuevo Espera a que termine el hilo creado Hilo principal funcion_hilo() { … } Hilo creado con la llamada pthread_create Sistemas Operativos

  32. Gestión de hilos básica(POSIX) • Pthread_join() • Hilo que ejecuta pthread_join, espera a que termine otro hilo • El hilo principal debe esperar a que terminen todos los hilos creados • Si el hilo principal no espera a que terminen los hilos creados, al terminar termina el proceso con todos los hilos. Sistemas Operativos

  33. Sistemas Operativos

More Related