0% encontró este documento útil (0 votos)
15 vistas23 páginas

Hilos y Procesos en Sistemas Operativos

Un hilo es un proceso ligero que comparte recursos y espacio de memoria con otros hilos dentro de un mismo proceso, permitiendo la ejecución concurrente. Los hilos son más eficientes en términos de creación y cambio de contexto en comparación con procesos independientes, facilitando la comunicación y compartición de recursos. Existen hilos a nivel de usuario y a nivel de núcleo, cada uno con sus ventajas y desventajas en la gestión y planificación de la ejecución.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas23 páginas

Hilos y Procesos en Sistemas Operativos

Un hilo es un proceso ligero que comparte recursos y espacio de memoria con otros hilos dentro de un mismo proceso, permitiendo la ejecución concurrente. Los hilos son más eficientes en términos de creación y cambio de contexto en comparación con procesos independientes, facilitando la comunicación y compartición de recursos. Existen hilos a nivel de usuario y a nivel de núcleo, cada uno con sus ventajas y desventajas en la gestión y planificación de la ejecución.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

Sistemas

Sistemas Operativos
Operativos
Hilos
Hilos –– Threads
Threads

Profesores
Mag. Ing. Liliana CUENCA PLETSCH
Dr. Ing. Sergio GRAMAJO
Auxiliares
Ing. Alberto RISTOFF
Ing. Jorge ROA
Procesos e Hilos

Un hilo, thread o proceso ligero es un programa en ejecución que


comparte la imagen de memoria y otras informaciones con otros hilos
de un proceso.
Es decir que los procesos, en lugar de un único flujo de ejecución se
componen de más de un flujo de ejecución.
En Sistemas Operativos multihilos la unidad básica de utilización de CPU
es el hilo, donde cada proceso está compuesto por un espacio de
direcciones y uno o más hilos de control

Cola de Listos

P3H6 P1H10 P2 H16 P2H5 P1H2 P1 H1


Procesos e Hilos
Hilos

Información compartida Información exclusiva de


por todos los hilos del cada hilo
proceso

Espacio de direcciones Contador de programa


Variables globales Registros
Archivos abiertos Pila
Procesos hijos Estado
Alarmas pendientes
Señales y manejadores de
señales
Información contable
Procesos e Hilos

Proceso

Código
Datos
Recursos (archivos…..)

Recursos (archivos…..)

Entorno del proceso


Thread 1 Thread n
Registros Registros
Pila Pila
Procesos e Hilos

Modelo de Proceso Monohilo Modelo de Proceso Multihilo

HILO HILO

Bloque de Bloque Bloque


Control de Pila de Bloque
de de
Proceso usuario Control Control
de de Hilo de Hilo
Control
de
Espacio de Proceso Pila de Pila de
Direcciones usuario usuario
de usuario Pila del Espacio
Núcleo de
Direccio-
Pila del Pila del
nes de
Núcleo Núcleo
usuario
Procesos e Hilos
Procesos e Hilos

Un Proceso
(padre) puede <>
HILOS
crear un nuevo
proceso (hijo)

Un proceso hijo es un proceso completo que consiste en un programa en


ejecución, con valores propios información de estado, que hereda del
proceso padre

Los hilos permiten la ejecución concurrente de varias secuencias de


instrucciones asociadas a diferentes funciones dentro de un mismo
proceso, compartiendo un mismo espacio de direcciones y las
mismas estructuras de datos del núcleo
Beneficios de los Hilos

 Lleva menos tiempo crear un hilo dentro de un proceso que


un nuevo proceso (10 o + veces más rápido)
 Lleva menos tiempo cambiar entre hilos que comparten el
mismo espacio de direcciones que entre procesos que tienen
sus propios espacios de direcciones.
 La compartición de recursos es más eficiente entre hilos que
entre procesos
 La comunicación entre hilos no requiere la intervención del
núcleo

Si se desea implementar una aplicación como un conjunto de


unidades de ejecución relacionadas, es más eficiente hacerlo con
un conjunto de hilos que con un conjunto de procesos
independientes
Hilos
Ejemplo. Servidor Web multihilo
Hilos
Ejemplo. Procesador de texto con 3 hilos

Reformatea el texto cada vez que el


usuario realiza una inserción o una
eliminación

Realiza Autoguardado
Recibe las entradas
cada cierto tiempo
del usuario
Hilos: Modelo clásico

(a) Modelo de 1 hilo por proceso (b) Modelo de varios hilos por proceso
Hilos

Información compartida Información exclusiva de


por todos los hilos del cada hilo
proceso

Espacio de direcciones Contador de programa


Variables globales Registros
Archivos abiertos Pila
Procesos hijos Estado
Alarmas pendientes
Señales y manejadores de
señales
Información contable
Planificación de hilos
Sincronización hilos

Los hilos de un proceso comparten el mismo espacio de


direcciones y otros recursos, como por ejemplo los archivos.

Es necesario sincronizar los hilos para evitar que interfieran


entre ellos o dejen inconsistentes las estructuras de datos
compartidas
Hilos a nivel de usuario y a nivel de núcleo

ULT KLT
Hilos a nivel de usuario ULT

 Todo el trabajo de gestión de hilos lo realiza la aplicación. El


núcleo o kernel no es consciente de la existencia de hilos.

 Es posible programar una aplicación como multihilo mediante una


biblioteca de hilos.

 La biblioteca de hilos contiene el código para crear y destruir hilos,


intercambiar mensajes y datos entre hilos, para planificar la
ejecución de hilos y para salvar y restaurar el contexto de los hilos.

 Todas las operaciones se llevan a cabo en el espacio de usuario


de un mismo proceso.

 El kernel continua planificando el proceso como una unidad y


asignándole un único estado (Listo, bloqueado, etc.)
Hilos a nivel de usuario - ULT
Ventajas Desventajas
 El intercambio de los hilos no
necesita los privilegios del  En la mayoría de los sistemas
modo kernel, por que todas las operativos las llamadas al
estructuras de datos están en sistema son bloqueantes.
el espacio de direcciones de Cuando un hilo realiza una
usuario de un mismo proceso. llamada al sistema, se bloquea
Los cambios de contexto el mismo y también el resto de
son rápidos ya que no los hilos del proceso.
involucran llamadas al
sistema.  Las aplicaciones multihilo no
 La planificación de los hilos se pueden aprovechar las
realiza dentro del proceso, por ventajas de los
lo que se puede elegir el multiprocesadores, ya que
criterio. como el núcleo no interviene, ve
al conjunto de hilos como un solo
 Los ULT pueden ejecutar en proceso
cualquier sistema operativo.
La biblioteca de hilos es un
conjunto compartido.
Hilos a nivel de nucleo - KLT

 El SO soporta los hilos y proporciona un conjunto de


llamadas al sistema para su manipulación.

 El SO crea un thread de kernel por cada thread de usuario.

 El kernel mantiene la información de contexto tanto de los


procesos como de los hilos.

 El cambio de contexto entre threads lo realiza el kernel.

 Los hilos a nivel de kernel se bloquean y despiertan en forma


independiente
Hilos a nivel de núcleo KLT
Ventajas Desventajas

 El kernel puede planificar  El paso de control


simultáneamente de un hilo a otro
múltiples hilos del mismo requiere un cambio
proceso en múltiples de modo
procesadores.
 Si se bloquea un hilo,
puede planificar otro del
mismo proceso o de otro.
 Las propias funciones del
kernel pueden ser
multihilo
Hilos a nivel de usuario
Implementacion

 El Runtime (sistema en Procesos y


tiempo de ejecución) es una sus hilos
colección de rutinas de Espacio Runtime
manejo de hilos que lleva el de usuario (contiene
control del estado de cada información de
hilo del proceso en estado de los
ejecución hilos

 Las llamadas del paquete Núcleo


Espacio (mantien
de hilos se implementan
como llamadas a de núcleo información de
estado de los
procedimientos del runtime.
procesos
Hilos a nivel de núcleo
Implementacion

Procesos y
Espacio sus hilos
de usuario

Núcleo
(mantien
información de
Espacio estado de los
de núcleo hilos
Hilos - Repaso

Hilos implementados mediante


Explique el concepto de hilo concepto de equipo

Qué información se requiere si Creación y Terminación de


se implementan hilos. Cuál es Hilos
propia y cuál es compartida

Ventajas de los hilos. Planificación de Hilos

Hilos implementados mediante un Hilos a nivel de usuario e hilos


hilo despachador e hilos a nivel de núcleo
trabajadores

También podría gustarte