Re: SDL-News: connections


Subject: Re: SDL-News: connections
From: Nikolai Mansurov (nick#ispras.ru)
Date: Wed Jul 14 1999 - 12:10:46 GMT


The originator of this message is responsible for its content.
-----From Nikolai Mansurov <nick#ispras.ru> to sdlnews -----

Hello Mitia,

On Wed, 14 Jul 1999, mitia wrote:

> The originator of this message is responsible for its content.
> -----From mitia <mitia#iname.com> to sdlnews -----
>
> Dear SDL experts,
>
> I am a bit confused with connections in SDL. Suppose a connection
> (in a block) has a set of internal & external channels, connected to
> it. What happens if a signal arrives, that can be sent via several
> channels? Is it sent randomly via one of them or duplicated for
> each one?

According to SDL-92/96 standard, there is always a single instance of a
signal. Signal instances are never duplicated. Please note, that the
"output via all" construct is just a shorthand for several "output via"
constructs.

Z.100 is somewhat vague as to how exactly the routing decisions are taken
when both the "via" and "to" clauses are omitted in the "output"
statement. According to Z.100 in that case "ANY process, for which there
exists a communication path, may receive the signal".

So, your assumption that the signal instance is "sent randomly via one of
them" is quite correct.

Semantics of signal output in SDL is indeed quite complex. It allows the
following several (basic) situations:

- output to PId
   -- if aprocess instance with such PId exists and is reachable with some
path, then the signal instance is delivered to the destination instance
   -- otherwise signal instance is lost

- output to process-identifier
   -- if there are any process instances of the destination process, then
the signal instance is delivered to one of them (randomly);
   -- otherwise the signal instance is lost

- output via path
   -- the signal instance is delivered to any process at the endpoint of
that path (to one of the process instances, if there are any).

- output
 
> Do we consider recipient's location at this point, i.e. does the
> connection "know" which way it should send signals for each process
> in system?

No. Connection is very much a static construct. Dynamically (i.e. during
run-time) complete communication paths are considered. Decision about the
actual destination is (in a way) taken by the output construct.

> Can a signal be sent "back", i.e. if it arrived from one of internal
> channels, are internal channels considered among possible routes?
>

No. Each connection is traversed only in one direction: either from inside
out, or from outside in.

I hope this will help.

Best regards,
Nikolai Mansurov

Head of Department for CASE tools
Institute for System Programming
Moscow Russia

-----End text from Nikolai Mansurov <nick#ispras.ru> to sdlnews -----
Join http://www.sdl-forum.org/Society/members.htm for extra SDL Forum Society benefits
For help, email "majordomo#sdl-forum.org" with the body of your email as:
    help
or (iff this does not answer your question) email: owner-sdlnews#sdl-forum.org



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