miércoles, 29 de octubre de 2014

2.3 Procesos ligeros. Hilos y Hebras

2.3 Procesos Ligeros. Hilos Y Hebras

El concepto de proceso es más complejo y sutil que el presentado hasta ahora. Engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.
Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc

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.


BENEFICIOS

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.



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
qUna tarea (o proceso pesado) está formada ahora por una o más hebras
qUna hebra sólo puede pertenecer a una tarea



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 EJECUCION, PUDIENDOSE DESTACAR LAS SIGUIENTES:
•Contador de programa.
•Pila.
•Registros.
•Estado del proceso ligero (ejecutando, listo o bloqueado).

TODOS LOS PROCESOS LIGEROS DE UN MISMO PROCESO COMPARTEN LA INFORMACION DEL MISMO. EN CONCRETO, COMPARTEN:
•Espacio de memoria.
•Variables globales.
•Archivos abiertos.
•Procesos hijos.
•Temporizadores.
•Señales y semáforos.
•Contabilidad.


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