This document discusses threads, symmetric multiprocessing (SMP), and microkernels. It defines a process as having two characteristics: resource ownership and scheduling/execution. Now threads rather than entire processes are usually scheduled, while processes own resources. Using threads provides benefits like faster context switching and inter-process communication. Threads can synchronize and have states like ready, blocked, and running. User-level and kernel-level threads differ in how they are managed. SMP systems use multiple processors to run threads and processes in parallel.
1. CURSO DE SISTEMAS OPERACIONALES
HILOS, SMP y MICRONUCLEOS
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
2. CONCEPTOS
Un proceso posee dos características :
[1] Propiedad de Recursos : un proceso incluye espacio de direcciones virtuales para
el manejo de la imagen del mismo. La imagen es la unión del programa, datos, pila y
los atributos del bloque de control.
[2] Planificación/Ejecución : la ejecución de un proceso sigue una ruta de ejecución a
través de uno o mas programas. Esta ejecución puede ser intercalada con otros
procesos, de esta manera un proceso tiene un estado de ejecución y una prioridad de
activación.
En la actualidad para distinguir estas dos propiedades , la unidad que se activa [2] se
suele llamar hilo o proceso ligero, mientras que la recurso [1] se suele llamar proceso o
tarea.
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
3. CONCEPTOS
Multihilo : Capacidad del sistema operativo de dar soporte a multiples hilos en la
ejecución de un solo proceso. Se habla de estrategias monohilo (DOS , algunos SO
UNIX) y multihilo (Windos, Solaris, OS/2, LINUX y JAVA).
Un proceso , un Hilo Un proceso , múltiples Hilos
Múltiples procesos, un Hilo por proceso Múltiples procesos, múltiples hilos por proceso
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
4. CONCEPTOS
En un entorno multihilo , un proceso se define como la unidad de asignación de
recursos y la unidad de protección. A los procesos se asocia lo siguiente:
• Un espacio de direcciones virtuales que soporta la imagen del proceso
• Acceso protegido a los procesadores, otros procesos, archivos y recursos E/S.
Dentro de un procesos puede haber uno o mas hilos, cada uno tiene :
• Un estado de ejecución por hilo.
• Un contexto del hilo que se almacena cuando no esta en ejecucion.
• Una pila de ejecución.
• Por cada hilo, espacio de almacenamiento para variables locales.
• Acceso a la memoria y recuros del un proceso (compartido con todos los hilos de
sus mismo proceso)
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
5. CONCEPTOS
DIFERENCIA ENTRE HILOS Y PROCESOS DESDE EL PUNTO DE VISTA DE
GESTION DE PROCESOS
Modelo de proceso multihilo
Modelo de proceso
con un único hilo
Bloque de Bloque de Bloque de
Bloque de control del control del control del
control del Pila de hilo hilo hilo
proceso
usuario
Bloque de
control del Pila de Pila de Pila de
proceso
usuario usuario usuario
Espacio de Pila de
direcciones nucleo
de usuario
Espacio de Pila de Pila de Pila de
direcciones nucleo nucleo nucleo
de usuario
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
6. CONCEPTOS
Beneficios de la Utilización de hilos:
• Lleva mucho menos tiempo crear un nuevo hilo en un proceso existente que crear
un proceso totalmente nuevo. En UNIX, la creación de un hilo es 10 veces mas
rápida que la creación de un nuevo proceso.
• Lleva menos tiempo finalizar un hilo que un proceso.
• Lleva mucho menos tiempo cambiar entre dos hilos que entre dos procesos.
• Los hilos mejoran la eficiencia de comunicación entre los diferentes programas
que se estén ejecutando. [En la mayor parte de los SO la comunicación entre procesos
requiere la intervención del núcleo]
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
7. CONCEPTOS
UTILIZACION:
1. Sistemas Multiprocesamiento (Servidores de Archivos con
multiprocesadores)
2. Sistemas de un solo procesador :
• Trabajo en primer plano y segundo plano : En un programa un hilo
puede encargarse de los menús y otro ejecutar los comandos del
usuario.
• Procesamiento Asíncrono : procesos que escriban información del
buffer a disco cada cierto tiempo.
• Velocidad de Ejecución : Hacer operaciones con varios datos
mientras lee otros tantos de un dispositivo.
• Estructura modular de programas: Implementar fácilmente
utilizando hilos.
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
8. FUNCIONALIDADES DE LOS HILOS
Al igual que los procesos, los hilos tienen estados de ejecución y se pueden sincronizar
entre ellos.
Estado de los hilos : Los principales estados de los hilos son : Ejecutando, listo y
Bloqueado. Existen cuatro (4) operaciones básicas asociadas a los cambios de estados
de un hilo:
• Creación : Cuando se crea un proceso, se crea un hilo para dicho proceso, un hilo puede crear
un nuevo hilo dentro del proceso proporcionado la información necesaria para el nuevo hilo al
proceso.
• Bloqueo : Cuando un hilo necesita esperar por un evento, se bloquea almacenando los registros
de usuario, contador de programa y punteros de pila.
• Desbloqueo : Cuando sucede el evento que el hilo estaba esperando. El hilo para a la cola de
listos.
• Finalizacion : Cuando se completa un hilo.
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
9. FUNCIONALIDADES DE LOS HILOS
Tiempo
PETICIÓN RPC PETICIÓN RPC
Proceso 1
SERVIDOR SERVIDOR
Bloqueado
Bloqueado, esperando el procesador
que esta en uso por el hilo B
SERVIDOR Ejecutando
PETICIÓN RPC
Hilo A Proceso 1
Hilo B Proceso 1
PETICIÓN RPC
SERVIDOR
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
10. SINCRONIZACION DE HILOS
Todos los hilos de un proceso comparten el mismo estado de direcciones y otros recursos,
cualquier alteración de un recurso por un hilo, altera a los demás, debido a esto es necesario
sincronizar los hilos para que no interfieran entre ellos y corrompan los datos de cada uno de
ellos. Para esto utilizan las mismas técnicas de sincronización de los procesos .
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
11. TIPO DE HILOS
Existen dos grandes categorías de hilo ,los ULT (user-level-threads) y los KLT
(Kernel-level-threads), los KLT también son conocidos como procesos
soportados por núcleo o procesos ligeros.
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
12. TIPO DE HILOS
ULT : en un entorno ULT puro, la aplicación gestiona todo el trabajo de los hilos y el núcleo no
conoce la existencia de los mismos. Cualquier aplicación puede programarse para ser multihilo a
través del uso de bibliotecas de hilos.
KLT : en un entorno KLT puro, el núcleo gestiona todo el trabajo de gestión de los hilos. No
existe código en la aplicación para el manejo de los hilos, solamente un API (Ejemplo Windows).
Entorno Combinado: Algunos SO operativos proporciona ULT y KLT combinados (Solaris). En
estos sistemas la creacion de hilos se realiza pro completo en el espacio del usuario. Los hilos
ULT se asocian a los hilos KLT.
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
13. TIPO DE HILOS
Biblioteca de Hilos Biblioteca de Hilos
P P P P
ESPACIO DE USUARIO ESPACIO DE NUCLEO
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
14. TIPO DE HILOS
Latencia de la operaciones en hilos y procesos
OPERACIÓN ULT KLT PROCESOS
Crear un proceso Nulo 34 948 11300
Señalizar- Esperar 37 441 1840
[1] Tiempo para crear, planificar, ejecutar y complementar un proceso/hilo que llama a un
procedimiento nulo(Crear un proceso hilo/proceso).
[2] Tiempo que lleva a un proceso/hilo que esta esperando y a continuación esperar una
condición (Sincronización)
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010
15. RELACION ENTRE HILOS Y PROCESOS
Hilos : Procesos Descripción SO
1:1 Cada hilo de ejecución es un único proceso Implementaciones tradicionales
con su propio espacio de direcciones y de UNIX
recursos
M:1 Un proceso define un espacio de direcciones y Windows NT, Solaris, Linux,
pertenencia dinámica de recursos. Se pueden OS/2.
crear y ejecutar múltiples hilos de este proceso
1:M Un hilo puede migar de un proceso a otro, esto Clouds
permite a los hilos moverse fácilmente entre
distintos sistemas
M:N Combina los atributos de M:1 y 1 : M TRIX
Elkin Alfredo Albarracin Navas, Esp.
Universidad Pontificia Bolivariana – Seccional Bucaramanga
II Semestre Académico 2010