Re: SDL-News: Re: Broadcast

Subject: Re: SDL-News: Re: Broadcast
From: Rick Reed TSE (
Date: Sat Aug 01 1998 - 13:19:20 GMT

The originator of this message is responsible for its content.
-----From Rick Reed TSE <> to sdlnews -----

At 08:31 +0100 30/7/98, Oystein Haugen wrote in reply to
>> ...
>You should get hold of a copy of the standard Z.100 from ITU.
>I quote here from the Z.100 of 1992 about Output:
--<Z.100 stuff>--
>As you can see from the above quotes, SDL does not have any broadcast
>mechanism, but a multicast feature.

I think it is useful to point out that the VIA ALL sends only one signal
per path, NOT one signal per process that can receive the signal. Therefore
this will be a "broadcast" if there is only one process at the end of each
path. This works well if the path specified actually leads to a replicated
block (that is a block definition based on a block type, where the number
of block instances is greater then 1 - see Z.100 In this case if
channel P connects to the replicated block, then VIA ALL P is equivalent to
sending one signal to each of the block replications (because P is
transformed by the SDL model into a list of channels - one connecting to
each block copy).

However, the same is not true for a route R connecting to a "process" that
has several instances. In this case, a "process" denotes the definition for
set of process definitions, and if there is more than one process instance
the signal is delivered to an arbitrary process within that set (assuming
that TO Pid has not been specified). Therefore VIA ALL R sends one signal
on route R, which will be placed in the input queue of one of the process

VIA ALL r1,r2,r3 where r1,r2, r3 are signal routes is equivalent to a
"broadcast" (that is - every recipient receives the signal), if and only if
each route leads to only one instance.

The reason that SDL works in this way is rooted in the underlying
conceptual model. In principle each SDL process instance exists
independently and concurrently with each other process instances, and is
connected with other instances by the communication paths. A valid
implementation of SDL is therefore that each process executes on its own
processor, and indeed if each SDL process actually represents a hardware
component this really is the case (the interleaving model used in the
formal semantics of SDL does not require SDL processes to be interleaved -
it is only asserted that this model is not demonstrably different from a
truely concurrent system). A system may also be distributed, hence the
possible delay when communicating by channels. Communication is by
messages, and these are directed to arrive at the correct place.

In circumstances where VIA ALL does achieve what is required, the usual way
of modelling "broadcast" in SDL is for one process to keep track of all
instances that should receive the message and send a signal to each one.
This may be the sending process, or for example a single process in one
block that repeats the signal to each receving instance in that block. See
the reply from Anders Olsen.

Finally, I have made the assumption that "broadcast" means that every
(possible) recipient receives the information. Another interpretation is
that messages are scattered like seeds - broadcasting in the original
agricultural sense.

Rick Reed, TSE Limited
13 Weston House, 18-22 Church Street
Lutterworth Leicestershire LE17 4AW United Kingdom
Tel +44 14 55 55 96 55; Fax +44 14 55 55 96 58
Mob +44 79 70 50 96 50

-----End text from Rick Reed TSE <> to sdlnews ----- For help, email "" with the body of your email as: help or (iff this does not answer your question) email:

This archive was generated by hypermail 2a23 : Sun Jun 16 2013 - 10:41:40 GMT