Un proceso es una entidad que posee 2 características importantes:
· Recursos: Básicamente: un espacio de direcciones (programas, datos y pila y un PCB), archivos, memoria, etc. El SOP realiza la función de protección para evitar interferencias no deseadas entre procesos en relación con los recursos.
· Planificación/Ejecución: El proceso sigue una ruta de ejecución. Tiene un PC, un Estado de ejecución (Listo, bloqueado, ejecutándose, etc.) y una prioridad.
Estas dos características son independientes y pueden ser tratadas como tales por los sistemas de operación. En algunos sistemas de operación se le denomina a la unidad activa hilo (thread) y a la unidad propietaria de recursos se le suele denominar proceso o tarea.
En un entorno multihilo se le asocia a los procesos:
ü Un espacio de direcciones virtuales que soporta la imagen del proceso.
ü Acceso protegido a procesadores, otros procesos, archivos y recursos de E/S
ü En un entorno multihilo se asocian a cada hilo:
ü Un estado de ejecución.
ü Un PC, un contexto (conjunto de registros) que se almacena cuando no está en ejecución.
ü Una pila.
ü Un espacio de almacenamiento para variables locales.
ü Acceso a la memoria y recursos del proceso.
Para que la comunicación entre procesos sea posible es necesario usar las llamadas al sistema. Los threads comparten el mismo espacio de direcciones. Por lo tanto el cambio de contexto entre un thread y otro que pertenecen al mismo proceso pudiera hacerse de forma totalmente independiente del sistema de operación. Los cambios de contexto de procesos son más costosos. Implican salvar el contexto del proceso, cambio de modo (trap al sistema de operación, etc), otro cambio de modo, restaurar contexto del nuevo proceso.
Implementaciones de hilos:
● Threads a nivel de usuario.
● Threads a nivel de kernel
● Enfoque combinado, procesos Livianos
Usando hilos, se puede permitir el uso de llamadas al sistema bloqueantes sin necesidad de “bloquear” todo el proceso. Esta propiedad vuelve a los hilos particularmente atractivos para su uso dentro de sistemas distribuidos. Concentrémonos en la arquitectura Cliente Servidor.
CLIENTES MULTIHILOS
Sirven para esconder la latencia de comunicación a través de la red.

No hay comentarios:
Publicar un comentario