You are on page 1of 12

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
Hilos del Hilos de
  Kernel usuario
Cambio de
Lento Rápido
contexto

Al bloquearse un Al bloquearse
hilo el proceso no un hilo el
Bloqueos
tiene que proceso debe
bloquearse 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)

DO
S
Un Proceso, Un Un Proceso, Múltiples
Hilo Hilos

Window
s
Linux
UNIX Solaris
Mac OS
OS/2
Múltiples Procesos, un Múltiples Procesos
Hilo por Proceso Múltiples Hilos

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/
Acerca del autor y la
licencia
• Pedro Domingo
– http://elcopypaste.wordpress.com
– ppedrodom@gmail.com

• Licencia

You might also like