23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.3 Communication 177<br />

process A process B process C<br />

m<br />

m<br />

sender<br />

Figure 6.12: Multi-Way Communication<br />

receivers. We denoted m three times at the diverging flows. An alternative is to write it<br />

only once, at the common part <strong>of</strong> the flow.<br />

We identify two types <strong>of</strong> multi-way communication:<br />

Broadcast communication. A send operation <strong>of</strong> a sending object on the broadcast<br />

channel causes the delivery <strong>of</strong> the message at all objects that are connected to the<br />

channel, and that are willing to receive the message.<br />

Multicast communication. A generalisation <strong>of</strong> a broadcast, where messages are<br />

targeted at a subset <strong>of</strong> objects connected to the broadcast channel.<br />

Multicast is a generalisation <strong>of</strong> broadcast because we can describe broadcast as a multicast<br />

to all receivers.<br />

The common notion <strong>of</strong> multicast is asynchronous; the sender can always send, and<br />

neither knows who is receiving, nor gets a confirmation about reception. The fact that<br />

the sender can always send was the main item in the definition <strong>of</strong> asynchronous flow.<br />

Synchronous Message Passing Model<br />

We searched for a possible way to model multicast with synchronous message passing.<br />

We would like to express the senders behaviour as a single message-send statement.<br />

However, if the receivers all have a matching message-receive statement we have a<br />

problem. The execution <strong>of</strong> the message-send statement in the sender is paired with<br />

only one matching message-receive statement. So this construction describes a nondeterministic<br />

behaviour. Non-deterministically one <strong>of</strong> the receivers will accomplish the<br />

rendezvous, while all others cannot finish the communication. So we cannot realise a<br />

synchronous multi-way communication straightforwardly this way. The construct is<br />

however interesting for a completely different application. It is useful when we want<br />

m

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!