next up previous contents
Next: Abstracción Up: 92 Concurrencia y Distribución Previous: Arquitecturas que soportan la   Índice General

Comunicación y sincronización


Programas concurrentes necesitan algún tipo de comunicación entro los procesos. Hay dos razones principales:

  1. los procesos compiten para obtener acceso a recursos compartidos,
  2. los procesos quieren intercambiar datos.

Herramientas de programación suelen proporcionar solamente una de las dos posibilidades.

En ambos casos hace falta un método de sincronización entre los procesos que quieren comunicarse entre ellos. Al nivel del programador existen tres variantes como realizar las interacciones entre procesos:

  1. usar memoria compartida,
  2. mandar mensajes,
  3. lanzar procedimientos remotos.

Con la sincronización condicional se protege un objeto (p.e, un trozo de memoria) para que ningún otro proceso puede acceder el objeto hasta que este se encuentre en un estado permitido.

Los objetivos requeridos para la sincronización de procesos son normalmente:

La comunicación no tiene que ser síncrono en todos los casos. Existe también la forma asíncrona donde un proceso deja su mensaje en una estructura de datos compartida por los procesos. El proceso que ha mandado los datos puede seguir con otras tareas. El proceso que debe leer los datos lo hace en su momento.

Una comunicación entre procesos no tiene que ser fiable en todos los sistemas, existen varias posibilidades de fallos:


next up previous contents
Next: Abstracción Up: 92 Concurrencia y Distribución Previous: Arquitecturas que soportan la   Índice General
© 2001, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática