Hilo
Unidad mínima de asignación: tarea.
Unidad mínima de expedición: hilo.
Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de código, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea.
Podemos captar la funcionalidad de los hilos si comparamos el control de múltiples hilos con el control de múltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones. Este tipo de organización es muy útil cuando los trabajos que los procesos efectúan no tienen ninguna relación entre si.
Pero cuando los trabajos a realizar van a necesitar, por ejemplo, la llamada a una misma función o bien, la compartición de una variable en memoria, nos interesará englobarlos en una tarea. Ej: Avion-Torre.
Cuando un hilo está en ejecución, posee el acceso a todos los recursos que tiene asignados la tarea.
Un hilo tendrá lo siguiente:
- Estado.
- Contexto del procesador. Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos. Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.
- Pila de ejecución donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
- Espacio de almacenamiento estático donde almacenará las variables.
- Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
- Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso.
- Se tarda menos tiempo en terminar un hilo que en terminar un proceso.
- Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos (porque los recursos no cambian, por ejemplo)
- Es mas sencillo la comunicación (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos.
- Cuando se cambia de un proceso a otro, tiene que intervenir el núcleo del sistema operativo para que haya protección. Cuando se cambia de un hilo a otro, puesto que la asignación de recursos es la misma, no hace falta que intervenga el sistema operativo.
No hay comentarios.:
Publicar un comentario