0% encontró este documento útil (0 votos)
70 vistas8 páginas

04 Hilos 6pp

El capítulo 4 aborda el concepto de hilos y procesos en sistemas operativos, diferenciando entre hilos a nivel de núcleo y a nivel de usuario, así como sus beneficios y desventajas. Se discuten los estados de los hilos, la gestión de recursos y la comunicación entre hilos dentro de un proceso, así como ejemplos de implementación en diferentes sistemas operativos. Además, se presentan las arquitecturas de hilos en Windows, Solaris y Linux, destacando la importancia de los hilos en la eficiencia y el rendimiento del sistema.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas8 páginas

04 Hilos 6pp

El capítulo 4 aborda el concepto de hilos y procesos en sistemas operativos, diferenciando entre hilos a nivel de núcleo y a nivel de usuario, así como sus beneficios y desventajas. Se discuten los estados de los hilos, la gestión de recursos y la comunicación entre hilos dentro de un proceso, así como ejemplos de implementación en diferentes sistemas operativos. Además, se presentan las arquitecturas de hilos en Windows, Solaris y Linux, destacando la importancia de los hilos en la eficiencia y el rendimiento del sistema.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Contenido

Captulo 4

Hilos

Secciones Stallings: 4.1 4.3

Procesos e hilos. Hilos a nivel de ncleo y a nivel de usuario. Multiprocesador simtrico (SMP). Microncleos.

Proceso
Unidad de propiedad de los recursos:
Necesita espacio de direcciones virtuales para mantener su imagen Tiene asignados recursos en ciertos momentos

Procesos e hilos
Hilo: unidad de expedicin. Proceso/tarea: unidad de propiedad de los recursos

Unidad de expedicin:
sigue un camino de ejecucin que puede ser intercalada con la de otros procesos

Estas dos caractersticas son tratadas de manera independiente por el S.O.

Multihilo
SO mantiene varios hilos de ejecucin dentro de un mismo proceso. MS-DOS soporta un solo hilo. UNIX soporta mltiples procesos de usuarios, pero slo un hilo por proceso. Windows (a partir del 2000), Solaris, Linux, Mach, y OS/2 soportan mltiples hilos.
Un proceso, un hilo Un proceso, mltiples hilos

Mltiples procesos, un hilo por proceso

Mltiples procesos, mltiples hilos por proceso

Flujo de instrucciones

Figura 4.1. Procesos e hilos [ANDE97].

Proceso en entorno multihilo


Proceso:
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. Puede tener 1 o varios hilos

Hilo en entorno multihilo


Hilo tiene:
Estado de ejecucin (ejecucin, listo, etc.). Contexto del procesador, que se salva cuando no est ejecutando. Tiene una pila de ejecucin. Almacenamiento esttico para las variables locales. Acceso a memoria y otros recursos del proceso, compartidos con todos los hilos del mismo

Modelo de proceso monohilo


Bloque de control de proceso Pila de usuario

Modelo de proceso multihilo


Hilo
Bloque de control de hilo

Hilo
Bloque de control de hilo

Hilo
Bloque de control de hilo

Beneficios de los hilos


Se tarda menos tiempo 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. Los hilos de un mismo proceso comparten recursos (memoria, archivos, ) => pueden comunicarse entre s sin invocar al ncleo (no necesidad de proteccin) => coordinacin es ms rpida (vs. procesos, que deben enviarse msgs.) => aumenta eficiencia

Espacio de Pila del direcciones ncleo de usuario (cdigo y datos)

Bloque de control de proceso Espacio de direcciones de usuario (cdigo y datos)

Pila de usuario

Pila de usuario

Pila de usuario

Pila del ncleo

Pila del ncleo

Pila del ncleo

Acceso a los mismos datos y recursos. Ej: un hilo abre fichero con permiso lectura, el resto de hilos pueden leer.
Figura 4.2. Modelos de proceso monohilo y multihilo.

Usos de los hilos en un sistema monousuario y multiproceso


Trabajo interactivo y en segundo plano.
Ej: calcular recibir datos de teclado (bloques)

Llamadas a Procedimiento Remoto (RPC) utilizando hilos


Tiempo Llamada a RPC Proceso 1 Llamada a RPC

Procesamiento asncrono
Ej: cada X tiempo copia de seguridad. No necesario comprobaciones externas de tiempo, ni coordinacin entre E/S, porque el hilo se ocupa de ello

Servidor 1

Servidor 2

Aceleracin de la ejecucin
Ej: procesar lotes leer siguiente

(a) RPC utilizando un solo hilo Bloqueado, esperando respuesta de una RPC Ejecutando

Estructuracin modular de los programas


Ej: varias actividades a la vez y/o varios dispositivos

Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos

Llamadas a Procedimiento Remoto (RPC) utilizando hilos


Llamada a RPC Hilo A (proceso 1) Hilo B (proceso 1) Llamada a RPC
Servidor 2 Servidor 1

Estados de un hilo
Hilos tienen estado de ejecucin Pueden sincronizarse entre ellos Operaciones bsicas relacionadas con el cambio de estado en hilos:
Creacin Bloqueo Desbloqueo Terminacin:
Se liberan el contexto y las pilas.

(b) RPC utilizando un hilo por servidor (en un monoprocesador) Bloqueado, esperando respuesta de una RPC Bloqueado, esperando al procesador que est siendo usado por el hilo B Ejecutando

Figura 4.3. Llamadas a Procedimiento Remoto (RPC) utilizando hilos.

Estados de proceso - hilos


Suspensin de un proceso => suspensin de todos sus hilos, porque comparten el mismo espacio de direcciones Terminacin de un proceso => terminar con todos sus hilos, el proceso ya no se elige para la ejecucin

Estados de un hilo
Creacin de un hilo:
Crear proceso = crear 1 primer hilo Un hilo puede crear otros hilos:
Le pasa puntero de instruccin y argumentos

Nuevo hilo tiene su propio contexto y espacio de pila Nuevo hilo pasa a la cola de listos

Estados de un hilo
Bloqueo de un hilo:
Hilo necesita esperar suceso Bloqueo: guardar contexto del hilo (registros, contador de programa, puntero de pila) No tienen por qu bloquearse el resto de los hilos
Hilos a nivel de usuario: se bloquea el proceso entero Hilos a nivel de ncleo: se bloquea slo el hilo

Estados de un hilo
Desbloqueo de un hilo:
El suceso ocurre
El hilo pasa a cola de listos (si hilos a nivel de ncleo) El proceso pasa a cola de listos (si hilos a nivel de usuario y era el nico hilo bloqueado)

Terminacin de un hilo:
Se libera su bloque de control (contexto) y su pila

Hilos a nivel de usuario


La aplicacin realiza todo el trabajo de gestin de hilos El ncleo no tiene conocimiento de la existencia de hilos Biblioteca de hilos - cdigo para:
crear y destruir hilos intercambiar mensajes y datos entre hilos planificar ejecucin de hilos salvar y restaurar el contexto de los hilos

Hilos a nivel de usuario


Biblioteca de hilos Espacio de usuario Espacio de ncleo

(a) Nivel de usuario puro

Hilo a nivel de usuario

Hilo a nivel de ncleo

Proceso

Proceso ejecutndose (hilo 2) Interrupcin de reloj: el tiempo para proceso B termina Qu ocurre?

Proceso ejecutndose (hilo 2) Hilo 2 hace llamada al sistema

Pasa a modo ncleo => proceso bloqueado Estado de los hilos se mantiene (nivel usuario)

Pasar a modo ncleo Proceso B pasa a listo Estado de los hilos (nivel usuario) se mantiene

Proceso ejecutndose (hilo 2) Hilo 2 necesita que ocurra suceso que depende de hilo 1. Qu ocurre?

Hilos a nivel de usuario


Permiten multiprogramacin dentro de un proceso

Planificador Hilos: Tabla Hilos Biblioteca de usuario Tabla Hilos

Espacio de usuario

Proceso A

Proceso B
Planificador Procesos

Hilo 2 se bloquea (nivel usuario) Hilo 1 de listo a ejecutarse Proceso sigue ejecutndose

Tabla de procesos

Ncleo

Planificacin de los hilos es interna al proceso biblioteca de hilos a nivel de usuario

Ventajas hilos a nivel de usuario


Intercambio de hilos no necesita privilegios del modo ncleo:
Gestin de hilos en el espacio de direcciones de usuario Se evitan 2 cambios de modo

Desventajas hilos a nivel de usuario


Llamadas al sistema son bloqueantes:
Un hilo ejecuta llamada => bloqueo del resto de hilos (bloqueo de todo el proceso)

No se aprovechan las ventajas de multiprocesadores:


Ncleo asigna el procesador a 1 proceso => cuando se le quita, todos hilos del proceso esperan a que se le vuelva a asignar. Hilos a nivel de usuario invisibles para el S.O.

Se puede decidir planificacin especfica a nivel de hilos Hilos se pueden ejecutar en cualquier S.O.:
Biblioteca hilos = utilidades de aplicacin

Hilos a nivel de ncleo


Ncleo mantiene la informacin de contexto del proceso y de los hilos
Hilos visibles y gestionados por el ncleo

Hilos a nivel de ncleo


Espacio de usuario Espacio de ncleo

La planificacin se realiza en funcin de los hilos => hilos del mismo o distinto proceso compiten por procesador Ejs: W2K, Linux y OS/2

(b) Nivel de ncleo puro

Hilo a nivel de usuario

Hilo a nivel de ncleo

Proceso

Hilos a nivel de ncleo


Ventajas:
Si varios procesadores, posible ejecutar en paralelo hilos del mismo proceso Bloqueo de un hilo NO implica bloqueo de los dems Las propias funciones del ncleo pueden ser multihilo

Aproximaciones combinadas
Creacin de hilos: en el espacio de usuario Planificacin y sincronizacin: en el espacio de usuario Varios hilos de usuario se asocian con varios hilos a nivel de ncleo
N igual o distinto, lo puede ajustar el programador

Desventajas:
Necesario cambiar a modo ncleo para pasar de un hilo a otro (incluso con hilos de un mismo proceso)

Ej.: Solaris Ventajas:


Hilos de un mismo proceso se pueden ejecutar en paralelo en varios procesadores Llamadas al sistema bloqueantes no necesitan bloquear todo el proceso.

Biblioteca de hilos

Espacio de usuario Espacio de ncleo

Espacio de usuario Espacio de ncleo

Biblioteca de hilos

Espacio de usuario Espacio de ncleo

Relacin entre hilos y procesos


Hilos : Procesos 1:1 Descripcin Cada hilo de ejecucin es un nico proceso con sus propios recursos y espacio de direcciones. Un proceso define un espacio de direcciones y unos recursos dinmicos propios. Pueden crearse varios hilos que ejecuten en dicho proceso. Sistemas de ejemplo Implementaciones UNIX clsicas

M:1
(a) Nivel de usuario puro (b) Nivel de ncleo puro (c) Combinado

Windows NT, Solaris, OS/2, OS/390, MACH

Hilo a nivel de usuario

Hilo a nivel de ncleo

Proceso

Figura 4.6. Hilos a nivel de usuario y a nivel de ncleo.

Relacin entre hilos y procesos


Hilos : Procesos 1:M Descripcin Un hilo puede emigrar del entorno de un proceso a otro. Esto permite que un hilo se pueda mover fcilmente entre sistemas distintos. Sistemas de ejemplo Ra (Clouds), Emerald

Procesos de Windows
Implementados como objetos Un proceso ejecutable puede contener uno o ms hilos. Tanto el objeto proceso como el objeto hilo tienen funcionalidades de sincronizacin preconstruidas.

M:N

Combina los atributos de los casos M:1 y1:M

TRIX

Un proceso Windows y sus recursos

Proceso de Windows

Objeto proceso

Hilo de Windows
Objeto hilo

Estados de los hilos (Windows 2000)


Listo (Ready) Substituto (Standby) Ejecutando (Running) Bloqueado (Waiting) Transicin (Transition) Terminado (Terminated)

Estados y transiciones de hilos en Windows


Proceso:

Solaris
BCP Espacio de direcciones: cdigo + datos + pila

Hilos a nivel de usuario (ULT) Hilos a nivel de ncleo (KLT):


Realizan funciones especficas de ncleo

Procesos ligeros (LWP):


Asociacin entre ULT y KLT Cada LWP:
soporta uno o ms ULT est asociado con un KLT

Arquitectura multihilo de Solaris

Estructura de procesos en Unix clsico y Solaris

EdD de proceso ligero en Solaris


Identificador del LWP Prioridad Mscara de seales: indica al ncleo que seales debe aceptar Contexto Pila del ncleo para el LWP Uso de recursos y datos de perfles: Contabilidad Puntero al correspondiente hilo del ncleo Puntero a la estructura del proceso

Estados y transiciones de hilos y procesos ligeros en Solaris

EdD de proceso Linux


Estado Informacin de planificacin: Identificadores Comunicacin entre procesos Enlaces: padres-hijos-hermanos Tiempos y temporizadores Sistema de ficheros Espacio de direcciones Contexto especfico del procesador

Estados en un proceso Linux


Ejecutando (Running) Interrumpible (Interruptable) Ininterrumpible (Uninterruptable) Detenido (Stopped) Zombie

Estados y transiciones de hilos y procesos ligeros en Linux

También podría gustarte