Hilos Captulo 5 Silberschatz Galvin Hilos Concepto Beneficios
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 Sistemas Operativos 2 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 3 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 tarea Un proceso tradicional o pesado, es igual a una tarea con un hilo. Sistemas Operativos 4 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos y procesos un proceso un hilo un proceso varios hilos varios procesos un hilo por proceso varios procesos varios hilos por proceso Sistemas Operativos 5 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Procesos con un solo hilo y con múltiples hilos Código Datos Archivos Hilo Multi-hilo Mono-hilo Sistemas Operativos 6 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Modelos de procesos de un solo hilo y de muchos hilos Modelo de proceso multihilos Modelo de proceso de un solo hilo Bloque de control del proceso Espacio de direcciones del usuario Hilo Stack del usuario Stack del Kernel Bloque de control del proceso Espacio de direcciones del usuario Hilo Bloque de control del hilo Stack del usuario Stack del kernel Sistemas Operativos 7 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 8 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 9 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos Los hilos proveen un mecanismo que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones. Sistemas Operativos 10 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Beneficios Compartición de recursos Economía Utilización de arquitecturas de múltiples procesadores Sistemas Operativos 11 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 12 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 CPU Core Sistemas Operativos 13 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 14 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 15 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos a nivel kérnel Soportados por el kérnel Ejemplos • Windows 95/98/NT • Solaris • Linux • Mac OS Sistemas Operativos 16 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos a nivel kernel (con un CPU con un solo núcleo) Nivel usuario Nivel kérnel (sistema operativo) Planificador del SO Hardware CPU Core Sistemas Operativos 17 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos a nivel kernel (con un CPU con doble núcleo) Nivel usuario Nivel kérnel (sistema operativo) Planificador del SO Hardware CPU Core Sistemas Operativos 18 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 19 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Modelos multihilos Muchos a uno Uno a uno Muchos a muchos Sistemas Operativos 20 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 21 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Modelo muchos a uno k Sistemas Operativos 22 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Relaciones entre estados de ULTs y estados de procesos Hilo 1 Listo Hilo 2 Ejecución Listo Ejecución Bloqueado Usuario Listo Kernel Ejecución Bloqueado Proceso B Sistemas Operativos 23 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Uno a uno Cada hilo a nivel usuario corresponde a un hilo del kérnel. Ejemplos: - Windows 95/98/NT - OS/2 Sistemas Operativos 24 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Modelo uno a uno Hilo a nivel usuario k k Hilo a nivel kérnel Sistemas Operativos 25 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Modelo muchos a muchos Hilo a nivel usuario k k Hilo a nivel kérnel k Sistemas Operativos 26 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Soporte de hilos en Solaris 2 es una versión de UNIX con soporte para hilos a nivel kernel y a nivel usuario, procesamiento simétrico y planificación en tiempo real. Sistemas Operativos 27 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Soporte de hilos en Solaris 2 LWP – Nivel intermedio entre los hilos a nivel kernel y los hilos a nivel usuario. Sistemas Operativos 28 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos en Solaris 2. Recursos necesarios para los tipos de hilos Hilos del kernel • Estructura de datos pequeña y un stack • El intercambio de hilos no requiere cambiar la información del acceso a memoria • Cambios de hilos relativamente rápidos Sistemas Operativos 29 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos en Solaris 2. Recursos necesarios para los tipos de hilos LWP • PCB con datos de los registros • Información sobre la memoria • El intercambio entre LWP es relativamente lento Sistemas Operativos 30 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos en Solaris 2. Recursos necesarios para los tipos de hilos Hilos a nivel usuario • Solo requiere un stack y un contador de programa • No involucrar al kernel significa un intercambio rápido • El kernel solo ve los LWP que soporta los hilos a nivel usuario Sistemas Operativos 31 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Ejemplo de la arquitectura multihilo de Solaris Proceso 1 Proceso 2 Proceso 3 Proceso 4 Proceso 5 Usuario L L L L Biblioteca de hilos L Núcleo P Hardware Hilo a nivel de usuario 32 Hilo del núcleo P L P Proceso ligero P Procesador Sistemas Operativos Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 33 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 34 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 thread 2. c -o thread 2 -lpthread Sistemas Operativos 35 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
int main() { pthread_create(a_thread, funcion_hilo); Crea un hilo nuevo Espera a que termine el hilo creado pthread_join(a_thread); } Hilo principal funcion_hilo() { … } Hilo creado con la llamada pthread_create Sistemas Operativos 36 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
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 37 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
Hilos en memoria Código (compartido) Datos (compartidos) Int cont=0 (var. Global) Stack (de cada hilo) Int i (var local) Sistemas Operativos 38 Hilos Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.
- Slides: 38