hilos
OBJETIVO: Describir el concepto de hilo, funcionamiento y su
relación con los SO’s
CONTENIDOS:
3.1 Conceptos
3.2 Multiproceso simétrico
3.3 Micronúcleo
Información obtenida: Escuela Universitaria de
Informática (Segovia)
1
HILO O THREADS
Procesos e hilos (threads):
Los hilos son un concepto relativamente nuevo de los SO. En este
contexto,un proceso recibe el nombre de proceso pesado, mientras que
un hilo recibe el nombre de proceso ligero. El término hilo se refiere
sintáctica y semánticamente a hilos de ejecución.
El término multihilo hace referencia a la capacidad de un SO para
mantener varios hilos de ejecución dentro del mismo proceso.
2
1
HILO O THREADS
Hay SO donde un proceso puede tenerinternamente
tareas concurrentes llamadas hilos de ejecución o
threads
Ejemplo:
Un proceso (guiado del
robot) puede tener un hilo
de ejecución para cada uno
de los sensores que
detectan obstáculos y otro
para la tarea de elegir la
trayectoria óptima
3
HILO O THREADS
Un thread o hilo es una secuencia de pasos de ejecución en un
programa.
Un proceso ligero o hilo(hilo) es un programa en ejecución (flujo de
ejecución) que comparte la imagen de memoria y otras informaciones
con otros procesos ligeros.
Es una unidad elemental de uso de CPU.
Un thread se puede ver como una extensión natural del modelo de proceso:
se permite la ejecución de varios hilos/threads (unidad planificable
independiente) dentro del mismo proceso.
Los distintos threads de unproceso comparten el código, los datos y los
recursos del proceso.
Proporcionan un mecanismo eficiente para la comunicación y
sincronización (comparten recursos) además de evitar en
cierta medida los cambios de contexto
4
2
HILOS O THREADS
El proceso se corresponde con un entorno de ejecución:
Proceso tiene un thread implícito: el flujo de ejecución
inicialThreads de un mismo proceso comparten:
Mapa de memoria (código, datos, zonas de mem. compartida,
...)
Recursos asociados al proceso (ficheros, semáforos, ...)
Cada thread tiene recursos propios:
Un mapa de memoria
Un conjunto de recursos asociados (ficheros, semáforos, ...)
Un conjunto de threads
Una pila, un estado y una copia del contenido de los regs.
Colasde listos y bloqueo contienen threads en vez de
procesos
THREADS
BCP sólo contiene info. gral. del proceso + lista de threads
BCT (Bloque de Control de Thread):
Info. específica del thread (estado, copia de regs., pilas de
usuario y núcleo, prioridad, puntero a BCP del proceso, etc.)
Creación de un thread:
Crear pila de usuario con argumentos
Crear piladel núcleo con dir. inicial del thread
Crear contexto inicial en BCT: Fijar valores iniciales de regs.
Ventajas del uso de threads vs. procesos convencionales:
PC inicial=dirección de código de S.O. que contiene RETI
Incluir BCT en cola de listos
Permiten expresar concurrencia “ligera” y fuertemente
acoplada
Ligera: C. de contexto más rápido
Fuertementeacoplada: Mayor grado de compartición
3
VENTAJAS DEL USO DE HILOS
Aumento del rendimiento en multiprocesamiento hardware
(paralelismo)
Aumento de productividad (uso efectivo de la CPU)
Disminución del tiempo de respuesta
Facilita la comunicación entre tareas
Uso más eficiente de los recursos del sistema
Simplifica el procesamiento en tiempo real
Programasmejor estructurados
Portabilidad
INCONVENIENTES DEL USO DE THREADS
Mayor complejidad de programación
No todos los programas se pueden implementar (o
son más eficientes) con threads
La conversión de antiguos programas a su
equivalente con threads no es una tarea fácil
8
4
¿PARA QUÉ QUIERO HILOS?
Descomponer la aplicación en múltiples subprocesos...
Regístrate para leer el documento completo.