2.3 Procesos Ligeros: Hilos o Hebras
|
Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución)
que comparte la imagen de memoria y otras informaciones con otros procesos
ligeros. Como muestra la Figura, un proceso puede contener un solo flujo de ejecución,
como ocurre en los procesos clásicos, o mas de un flujo de ejecución
(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligero se
define como una función cuya ejecución se puede lanzar en paralelo con otras.
El hilo de ejecución primario, o proceso ligero primario, corresponde a la función
main.
Cada proceso ligero tiene informaciones que le son propias y que no
comparte con otros procesos ligeros. Las informaciones propias se refieren
fundamentalmente al contexto de ejecución, pudiéndose destacar las
siguientes:
Todos los procesos ligeros de un mismo proceso comparten la información
del mismo. En concreto, comparten:
Es importante destacar que todos los procesos ligeros de un mismo
proceso comparten el mismo espacio de direcciones de memoria, que incluye el código,
los datos y las pilas de los diferentes procesos ligeros. Esto hace que no
exista protección de memoria entre los procesos ligeros de un mismo proceso,
algo que si ocurre con los procesos convencionales.
El proceso ligero constituye la unidad ejecutable en Windows NT. La
Figura representa de forma esquemática la estructura de un proceso de Windows
NT con sus procesos ligeros.
Proceso ligero
|
No hay comentarios:
Publicar un comentario