Práctico 6 Ejercicio 2 - Mensajeria, duda sobre cola de mensajes

Práctico 6 Ejercicio 2 - Mensajeria, duda sobre cola de mensajes

de Sebastian Daloia Servetti -
Número de respuestas: 2

Cuándo se dispone de primitivas de comunicación como las que hay en el ejercicio 2 práctico 6

SEND(tarea, mensaje)  -- No bloqueante

RECEIVE(mensaje)        -- Bloqueante

Suponiendo que varios procesos envían mensajes a un proceso Monitor (cardinalidad n:1)

se puede asumir que los mensajes se guardan temporalmente (como ocurre con el mailbox), o esto no ocurre así y cada SEND sobreescribe el mensaje de un SEND hecho previamente?

Gracias


En respuesta a Sebastian Daloia Servetti

Re: Práctico 6 Ejercicio 2 - Mensajeria, duda sobre cola de mensajes

de Gustavo Brown -

Sebastián,

  Las primitivas SEND/RECEIVE asociadas a procesos es como si existiera un mailbox particular para cada proceso. Al decirte que el SEND es no bloqueante básicamente te estan diciendo que tiene asociado un mailbox de capacidad infinita (a menos que se indique que el SEND retorna un valor indicando si hubo error o no). En este ejercicio el SEND no falla y por lo tanto se asume capacidad infinita.

Los SEND que hagas se van a ir encolando en el "mailbox" asociado a la tarea a la que le mandaste el mensaje, NO se sobreescribe el mensaje. Los RECEIVE que haga la tarea van a ir obteniendo los mensajes en orden FIFO, y la tarea se va a bloquear únicamente si no hay más mensajes (en cuyo caso recién se desbloquea cuando alguien le envie un nuevo mensaje).

Saludos,
  Gustavo