Sincronización y comunicación basadas en mensajes

Solo disponible en BuenasTareas
  • Páginas : 9 (2176 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de diciembre de 2010
Leer documento completo
Vista previa del texto
Sincronización y comunicación basadas en mensajes
23 de noviembre de 2010
La alternativa a la sincronización y comunicación mediante variables compartidas se basa en el paso de
mensajes. La aproximación está tipificada por el uso de una única construcción, tanto para la sincronización
como para la comunicación. En esta amplia categoría existe, sin embargo, una gran variedad de modelos delenguaje. Esta variedad en la semántica del paso de mensajes surge, y está dominada, por tres temas:
1. El modelo de sincronización.
2. El método de nombrado de los procesos.
3. La estructura del mensaje.
Inicialmente, se considerarán cada uno de estos tres temas. Después, se discutirán los modelos de paso
de mensajes de varios lenguajes, incluyendo Ada y occam2, con respecto al modelo POSIXpara tiempo
real. Java no soporta explícitamente un modelo de paso de mensajes, aunque se podrían producir clases que
implementaran ese modelo. Sin embargo, como no se introducen nuevas características del lenguaje, no se
hablará de Java en este capítulo.
Sincronización de procesos
En todos los sistemas basados en mensajes, existe un tipo de sincronización implícita: un proceso receptor
nopuede obtener un mensaje antes de que dicho mensaje haya sido enviado. En el caso de una variable
compartida, un proceso receptor puede leer una variable y no saber si ha sido escrita por el proceso emisor.
Si un proceso ejecuta una recepción de mensaje incondicional cuando no existe ningún mensaje disponible,
entonces permanecerá suspendido hasta que llegue el mensaje.
De la semántica de laoperación “envía” surgen las variaciones en el modelo de sincronización de procesos,
que pueden ser clasificados como sigue:
Asíncrona (o sin espera): el emisor continua inmediatamente, independiente de si se ha recibido o no
el mensaje.
Síncrona: el emisor continúa solo cuando se ha recibido el mensaje.
Invocación remota: el emisor continúa únicamente cuando se ha devuelto una respuesta desde elreceptor. La invocación remota modela el paradigma de comunicación petición-respuesta.
1
Hay una relación entre estas formas de envío. Dos eventos asíncronos pueden construir una relación síncrona
si siempre se envía (y se espera) un mensaje de reconocimiento:
P1
envía_asinc (mensaje)
espera (reconocimiento)
P2
espera (mensaje)
envía_asinc (reconocimiento)
Además, se pueden utilizar doscomunicaciones síncronas para construir una invocación remota:
P1
envía_sinc (mensaje)
espera (respuesta)
P2
espera (mensaje)
. . .
construye respuesta
. . .
envía_sinc (respuesta)
Como se puede utilizar un envió asíncrono para construir los otros dos, se podría plantear que este
modelo proporciona la mayor flexibilidad y que debería ser uno de los que adoptaran los lenguajes y lossistemas operativos. Sin embargo, utilizando este modelo existen varias desventajas:
1. Se necesitan potencialmente infinitos buferes para almacenar los mensajes que no se han leído todavía
(quizás porque el receptor hay terminado).
2. Como la comunicación asíncrona esta anticuada, la mayoría de los envíos se programan para esperar
un reconocimiento (es decir, una comunicación síncrona).
3. Senecesitan más comunicaciones con el modelo asíncrono, por lo que los programas son más complejos.
4. Es más difícil probar la corrección del sistema completo.
Hay que señalar que, si se desea la comunicación asíncrona en un lenguaje de paso de mensajes sincronizado,
los procesos búfer se pueden construir fácilmente. Sin embargo, la implementación de un proceso tiene
un coste, y, porconsiguiente, tener muchos procesos búfer podría tener un efecto perjudicial sobre las prestaciones
globales del sistema.
Nombrado de procesos y estructura de mensajes
El nombrado de procesos implica dos subtemas: dirección frente a indirección, y simetría. En un esquema
de nombrado directo, el emisor de un mensaje nombra explícitamente al receptor:
envía a
Con un esquema de nombrado indirecto, el...
tracking img