Hilos
Sistemas Operativos 1 Universidad de San Carlos de
Guatemala, Marzo de
Conceptos (I)
Hilos de ejecución. Procesos ligeros Subprocesos de un proceso La memoria y los recursos son asignados a los procesos Todos los hilos de un proceso comparten la memoria y los recursos asignados a dicho proceso Cada hilo tiene un contexto diferente Puede decirse que el recurso CPU no es compartido Cada hilo tiene una pila diferente
Conceptos (II) • Comparten los recursos del proceso. Un proceso puede ser formado por uno o varios hilos. • Permiten realizar varias actividades en paralelo. • Tiene estados de ejecución, listo y bloqueado.
Tipos de hilos • Hilos a nivel de usuario – Se usan aplicaciones o bibliotecas de hilos para manejarse (Creación, destrucción, planificación). – El S.O. no conoce la existencia de los hilos – (Unix) Existe un único hilo por proceso – Hay un paquete de hilos que corre en el espacio del usuario
• Hilos a nivel de Kernel – El sistema operativo conoce la existencia de los hilos. – El planificador no selecciona procesos para ser ejecutados sino hilos. – El hilo seleccionado puede pertenecer al mismo proceso o a un proceso diferente
Comparativa entre tipos de hilos Cambio de contexto
Bloqueos
Planificación
Hilos del Kernel
Hilos de usuario
Lento
Rápido
Al bloquearse un Al bloquearse hilo el proceso no un hilo el tiene que proceso debe bloquearse bloquearse Expropiativa
No expropiativa
Hilos y Procesos (I) Los hilos que maneja un proceso pueden ser de 2 tipos: – Mono-Hilo: Si un procesos solo puede manejar un hilo. – Multi-Hilo: Si un proceso puede manejar varios hilos.
Hilos y Procesos (II) DO S Un Proceso, Un Hilo
Un Proceso, Múltiples Hilos
Window s Linux Solaris Mac OS OS/2
UNIX Múltiples Procesos, un Hilo por Proceso Traza de Ejecución
Múltiples Procesos Múltiples Hilos
Ejemplos de aplicaciones multi-hilo •
Web browser – Un Hilo decodifica la página y la presenta en Pantalla. – Un Hilo toma los datos de la página de Internet.
•
Procesador de Texto. – Un Hilo despliega en Pantalla la interfaz. – Un Hilo toma los datos del Teclado. – Un Hilo revisa la ortografía.
•
Servidor Web – Un Hilo acepta peticiones de los clientes. – Para cada petición recibida se crea un Hilo que la atiende. – Usa muchos Hilos para atender en paralelo a muchos clientes.
Diferencias entre hilo y proceso • • • • •
•
Permiten paralelismo dentro de un Proceso ó Aplicación. Comunicación privada entre varios Hilos del mismo proceso, sin solicitar intervención del S.O. Mayor eficiencia en el cambio de un Hilo a otro, que de un Proceso a otro. Mayor eficiencia en la creación de un Hilo que en la creación de un Proceso Hijo. Un Proceso Multihilo puede recuperarse de la “muerte” de un Hilo, pues conoce los efectos de esta, y toma su espacio de memoria. Cuando un Proceso “muere” todos sus Hilos también, pues los recursos de Proceso son tomados por el Sistema Operativo.
Estados de los hilos • El estado del Proceso P es la combinación de los estados de sus Hilos. • Cuando cualquiera de los Hilos está en estado “Ejecutando”, el estado de P será “Ejecutando”. • Si ningún Hilo está en “Ejecutando”, si alguno está en “Listo”, el estado de P será “Listo”. • El estado de P es “Bloqueado” sólo si todos sus Hilos están en estado “Bloqueado”.
Referencias
• Implementacion de hilos de ejecucion en sistemas GNU/Linux http://nomeriasdeti.no-ip.com/files/docs/
Acerca del autor y la licencia • Pedro Domingo – http://elcopypaste.wordpress.com –
[email protected]
• Licencia