hilos

Páginas: 24 (5957 palabras) Publicado: 2 de julio de 2014
TEMA 3: HILOS (THREADS)
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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos
  • HILO
  • hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS