domingo, 1 de octubre de 2017

2.3. PROCESOS LIGEROS: HILOS O HEBRAS






El concepto de proceso 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) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.

Dentro de un proceso puede haber uno o más hilos de control cada uno con:


  1. Un estado de ejecución (en ejecución, listo, bloqueado).
  2. Un contexto de procesador, que se salva cuando no esté ejecutándose.
  3. Una pila de ejecución.
  4. Algún almacenamiento estático para variables locales.
  5. Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.


CARACTERISTICAS


  • Se comparten recursos. 
  • La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.
  • La conmutación de contexto es más rápida gracias al extenso compartir de recursos
  • No hay protección entre las hebras. 
  • Una hebra puede escribir en la pila de otra hebra del mismo proceso
  • Estado de los procesos ligeros


Procesos ligeros

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.· Registros.
  • 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 miniprograma 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.

Multiproceso se refiere a dos programas que se ejecutan "aparentemente" a la vez, bajo el controldel sistema operativo.


Multihilo se refiere a que dos o mas tareas se ejecutan "aparentemente" a la vez, dentro de un mismo programa.

No hay comentarios:

Publicar un comentario