Los procesos ligeros son
programas en ejecución son básicamente procesos pero a diferencia de éstos
últimos que solo tienen un hilo de ejecución los primeros tienen el hilo
principal más hilos secundarios o hijos, en éste caso todos los procesos hijos
comparten la información del hilo principal pero además puede cada hilo tener
su información privada.
Dentro de la información propia tenemos:
·
Contador de programa
·
Pila.
·
Estado del proceso ligero.
Dentro de la información compartida tenemos:
·
Variables globales.
·
Archivos abiertos.
·
Señales.
·
Semáforos.
·
Contabilidad.
Los hilos o procesos
ligeros son una parte de código o mini programa que puede ser
ejecutada independientemente, de forma que una aplicación o un applet puede
tener varios hilos ejecutándose simultáneamente y efectuando distintas tareas;
estos hilos se encuentran dentro de un programa y son parte de él.
Los hilos, a veces también llamados contextos de ejecución, pueden ser utilizados para la
implementación de algoritmos paralelos
o procesos concurrentes, sin ser necesario disponer de equipos
con estructura de multiprocesador. En el caso de un solo procesador,
los procesos ligeros incorporan mecanismos para compartirlo, estableciéndose
prioridades
entre ellos y también facilidades de sincronización, cuando es necesario.
entre ellos y también facilidades de sincronización, cuando es necesario.
Multiproceso se refiere a dos programas que se ejecutan "aparentemente"
a la vez, bajo el control del sistema operativo.
Multihilo se refiere a que dos o más tareas se ejecutan "aparentemente"
a la vez, dentro de un mismo programa.
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.
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 ejemplo de aplicación que podría hacer
uso de los hilos es un servidor de ficheros de una red de área local. Cada vez
que llega una solicitud de una operación sobre un fichero, se puede generar un
nuevo hilo para su gestión. El servidor gestiona multitud de solicitudes, por
tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio
a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar
varios hilos de un mismo proceso simultáneamente y en diferentes procesadores.
No hay comentarios:
Publicar un comentario