Date post: | 10-Jun-2015 |
Category: |
Documents |
Upload: | pedro-domingo |
View: | 8,847 times |
Download: | 8 times |
HilosHilos
Guatemala, Marzo de 2009Universidad de San Carlos de GuatemalaUniversidad de San Carlos de Guatemala
Sistemas Operativos 1Sistemas Operativos 1
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
Hilos del Kernel Hilos de usuario
Cambio de contexto Lento Rápido
BloqueosAl bloquearse un hilo el proceso no tiene
que bloquearse
Al bloquearse un hilo el proceso debe
bloquearse
Planificación 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)
Un Proceso, Un Hilo Un Proceso, Múltiples Hilos
Múltiples Procesos, un Hilo por Proceso
Múltiples Procesos Múltiples Hilos
DOSDOS
UNIXUNIXWindowsLinuxSolarisMac OSOS/2
WindowsLinuxSolarisMac OSOS/2
Traza de Ejecución
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/IHEGL.pdf
Acerca del autor y la licencia
• Pedro Domingo– http://elcopypaste.wordpress.com– [email protected]
• Licencia