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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.6 Dynamic Behaviour 221<br />

but not the other way around. Interrupts are only defined for process statements. This<br />

means that complicated calculations performed by data objects cannot be interrupted.<br />

6.6.8.3 Collaborating Process Objects<br />

We <strong>of</strong>fer various forms <strong>of</strong> communication for process objects. Clustered collections <strong>of</strong><br />

objects can be specified to be sequential by a concurrency boundary. When collaborating<br />

objects must perform sequential behaviour as a whole, all objects must use message<br />

passing with reply and waiting just like data objects do. By using the message flows<br />

with reply consequently we can describe sequential behaviour. In the behaviour description<br />

<strong>of</strong> the objects a message-send statement must then be followed immediately<br />

by a message-receive statement for the reply. This guarantees that the process waits for<br />

a reply.<br />

In contrast, the separation <strong>of</strong> a reply and the first rendezvous enables concurrency,<br />

independence and autonomy <strong>of</strong> process objects. Tail recursion <strong>of</strong>fers the power to<br />

describe infinite behaviour <strong>of</strong> concurrent processes. Processes are more autonomous<br />

than data objects because processes protect themselves against unwanted invocations.<br />

Processes can determine the order in which they want to receive messages or other<br />

conditions that must be fulfilled.<br />

6.6.8.4 Collaboration in Distributed <strong>Systems</strong><br />

Physically distributed systems or subsystems can need complex behaviour to perform<br />

communication. Channels between distributed modules usually need protocols. A<br />

way to specify the relative independence <strong>of</strong> subsystems is the use <strong>of</strong> asynchronous<br />

message flows. However, an abstract model can be build using synchronous message<br />

passing. Subsequently a model is extended with implementation details. In this phase<br />

asynchronous messages can be used to model the protocol.<br />

6.6.8.5 Dynamic Processes Linking<br />

A system model can be constructed in particular styles. As a model is refined and<br />

extended towards specific implementations, the quality <strong>of</strong> style determines the ease <strong>of</strong><br />

the mapping on an implementation description language. For example, an appropriate<br />

model directed towards a s<strong>of</strong>tware implementation can have:<br />

data objects with their dynamic links;<br />

process objects that share one channel, perform weakly distributed communication<br />

and use dynamic linking by passing names <strong>of</strong> acquaintances.<br />

For hardware an appropriate model can have:<br />

concurrent process objects that are statically interconnected by channels;<br />

data objects used for decomposition <strong>of</strong> complex sequential internal behaviour <strong>of</strong><br />

hardware building blocks.

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

Saved successfully!

Ooh no, something went wrong!