En la mayoría de los sistemas
operativos, estas dos características son, de hecho, la esencia de un proceso.
Sin embargo, son independientes, y pueden ser tratadas como tales por el
sistema operativo. Esta distinción ha conducido en los sistemas operativos
actuales a desarrollar la construcción conocida como thread, cuyas traducciones
más frecuentes son hilo, hebra y proceso ligero. Si se tiene esta división de
características, la unidad de asignación de la CPU se conoce como hilo,
mientras que a la unidad que posee recursos se le llama proceso.
Dentro de un proceso puede haber uno o más hilos de control
cada uno con:
· Un estado de ejecución (en ejecución, listo, bloqueado).
· Un contexto de procesador, que se salva cuando no esté
ejecutándose.
· Una pila de ejecución.
· Algún almacenamiento estático para variables locales.
· Acceso a la memoria y a los recursos de ese trabajo que
comparte con los otros hilos.
Los beneficios clave de los hilos
se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear
un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio
de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a
varios flujos de ejecución se mantiene una única copia en memoria del código, y
no varias. Un proceso ligero (thread o hebra) es un programa en ejecución que
comparte la imagen de la memoria y otras informaciones con otros procesos
ligeros.
Tareas con una y varias hebras
* Es una unidad básica de utilización de la CPU consistente en
un juego de registros y un espacio de pila. Comparte el código, los datos y los
recursos con sus hebras pares
* Una tarea (o proceso pesado) está formada ahora por una o
más hebras
* Una hebra sólo puede pertenecer a una tarea
Estados de los Procesos ligeros
Un proceso ligero puede estar ejecutando, listo o bloqueado.
Paralelismo
Los procesos ligeros permiten paralelizar una aplicación
No hay comentarios.:
Publicar un comentario