Procesos e Hilos
Proceso es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados. La unidad mínima de expedición y de asignación de recursos es el proceso.Estados en los que puede estar un proceso
- Listo
- Suspendido
- Bloqueado
- Bloqueado y Suspendido
- Listo y Suspendido
Elementos estructurales de un proceso
- Propiedades de recursos
- Memoria asignada
- Canales y/o Dispositivos
- Archivos asignados
Comunicación entre procesos
Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. Normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
La comunicación puede ser:
- Síncrona o asíncrona
- Persistente o momentánea
- Directa o indirecta
- Simétrica o asimétrica
- Con uso de buffers explicito o automático
- envío por copia el mensaje o por referencia
Hilos
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar éstos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente.Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros).
Funcionalidad de los Hilos
Al igual que los procesos, los hilos poseen un estado de ejecución y pueden sincronizarse entre ellos para evitar problemas de compartimiento de recursos. Generalmente, cada hilo tiene una tarea especifica y determinada, como forma de aumentar la eficiencia del uso del procesador.
Estado de un Hilo
Los principales estados de los hilos son: Ejecución, Listo y Bloqueado. No tiene sentido asociar estados de suspensión de hilos ya que es un concepto de proceso. En todo caso, si un proceso está expulsado de la memoria principal (ram), todos sus hilos deberán estarlo ya que todos comparten el espacio de direcciones del proceso.
Cambio de Estados
- Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y su propio espacio de pila, y pasara a la cola de listos.
- Bloqueado: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté en la cola de Listos mientras el anterior permanece bloqueado.
- Desbloqueado:Cuando el suceso por el que el hilo se bloqueó se produce, el mismo pasa a la cola de Listos.
- Terminación: Cuando un hilo finaliza se liberan tanto su contexto como sus pilas.
No hay comentarios:
Publicar un comentario