Cap04
Hilos, SMP y micronúcleos
Proceso
• Unidad de propiedad de los recursos: el
proceso incluye un espacio de direcciones
virtuales para mantener la imagen del proceso.
• Unidad de expedición: sigue un camino de
ejecución que puede ser intercalada con la de
otros procesos.
• Estas dos características son tratadas de
manera independiente por el sistema
operativo.
Proceso
• La unidad deexpedición se conoce
como hilo.
• La unidad de propiedad de los recursos
se conoce como proceso o tarea.
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, Mach, y
OS/2 soportan múltiples hilos.
Un proceso,un hilo
Múltiples procesos,
un hilo por proceso
Un proceso,
múltiples hilos
Múltiples procesos,
múltiples hilos por proceso
Flujo de instrucciones
Figura 4.1. Procesos e hilos [ANDE97].
Proceso
• Tiene un espacio de direcciones
virtuales, que contiene la imagen del
proceso.
• Acceso protegido a los procesadores, a
otros procesos, archivos y a recursos de
E/S.
Hilo
• Posee un estado deejecución (Ejecución, Listo,
etc.).
• El contexto del procesador se salva cuando no
está ejecutando.
• Tiene una pila de ejecución.
• Almacenamiento estático para las variables
locales.
• Acceso a la memoria y a los recursos del
proceso, compartidos con todos los hilos del
mismo.
Modelo de proceso
multihilo
Modelo de proceso
monohilo
Bloque de
control de
proceso
Pila de
usuario
Espacio dedirecciones
de usuario
Pila del
núcleo
Hilo
Hilo
Hilo
Bloque
de control
de hilo
Bloque
de control
de hilo
Bloque
de control
de hilo
Bloque de
control de
proceso
Pila de
usuario
Pila de
usuario
Pila de
usuario
Espacio de
direcciones
de usuario
Pila del
núcleo
Pila del
núcleo
Pila del
núcleo
Figura 4.2. Modelos de proceso monohilo y multihilo.
Beneficios de los hilos
• Se tarda menostiempo en crear un nuevo hilo
en un proceso existente.
• Se tarda menos tiempo en terminar un hilo que
un proceso.
• Se tarda menos tiempo en cambiar entre dos
hilos de un mismo proceso.
• Puesto que los hilos de un mismo proceso
comparten memoria y archivos, pueden
comunicarse entre sí sin invocar al núcleo.
Usos de los hilos en un sistema
monousuario y multiproceso
•
•
•
•
Trabajo interactivo yen segundo plano.
Procesamiento asíncrono.
Aceleración de la ejecución.
Estructuración modular de los
programas.
Hilos
• La suspensión de un proceso implica la
la suspensión de todos los hilos de un
proceso, puesto que todos comparten el
mismo espacio de direcciones.
• La terminación de un proceso supone
terminar con todos los hilos dentro de
dicho proceso.
Estados de un hilo
• Hay cuatrooperaciones básicas
relacionadas con el cambio de estado en
hilos:
– Creación:
• Se crea un nuevo hilo.
– Bloqueo.
– Desbloqueo.
– Terminación:
• Se liberan el contexto y las pilas.
Llamadas a Procedimiento
Remoto (RPC) utilizando hilos
Tiempo
Llamada
a RPC
Llamada
a RPC
Proceso 1
Servidor
Servidor
(a) RPC utilizando un solo hilo
Bloqueado, esperando respuesta de una RPC
Bloqueado, esperandoal procesador que está siendo usado por el hilo B
Ejecutando
Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos.
Llamadas a Procedimiento
Remoto (RPC) utilizando hilos
Llamada
a RPC
Servidor
Hilo A (proceso 1)
Hilo B (proceso 1)
Llamada
a RPC
Servidor
(b) RPC utilizando un hilo por servidor (en un monoprocesador)
Bloqueado, esperando respuesta de una RPC
Bloqueado, esperandoal procesador que está siendo usado por el hilo B
Ejecutando
Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos.
Hilos a nivel de usuario
• La aplicación realiza todo el trabajo de
gestión de hilos.
• El núcleo no tiene conocimiento de la
existencia de hilos.
Hilos a nivel de núcleo
• W2K, Linux y OS/2 son ejemplos de
este tipo de aplicación.
• El núcleo mantiene la...
Regístrate para leer el documento completo.