comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: Distributed Systems Annex, data sharing between programs
Date: Tue, 5 Jun 2012 18:35:51 +0000 (UTC)
Date: 2012-06-05T18:35:51+00:00	[thread overview]
Message-ID: <jqlji7$1cv$1@speranza.aioe.org> (raw)
In-Reply-To: 8055acf5-188f-4b34-b4f0-83d70fee54f8@googlegroups.com

> .. between partitions (of the same program?) transparently, and also to share
> data in Shared_Passive partitions transparently, without users having to
> worry about the representation.  So it would seem like a natural extension
> to provide this sort of communication between "programs".  The mechanisms
> would already exist.

    If program A consists of Procedure Main_A and a separate partition
Server, while program B is Procedure Main_B and also a separate Server,
you can write a small program AB which simply starts up two tasks.  One of
those tasks calls Main_A and the other Main_B and there you have
effectively the two programs running as a single, multitasking, program.
Separate it into partitions and you have the original two programs running
as a distributed program.  (Server would of course have to be re-entrant
whether it's called by two tasks in a traditional single physical
partition, or by two different active partitions.)

> On the other hand, you have a point that writing a server that uses a
> feature like this would limit the programs that could use the service to
> those written in Ada.
   Or any program with the needed Ada interface layer.

> .. now, if we repartition the program in such a way that a given
> operation (Do_Something_For_Me) ends up in a separate partition, it
> might become potentially blocking by virtue of the hidden physicality
> of remote call. In short, it might become a I/O operation even though
> it is not visible anywhere. If such operation is used within a
> protected body, then the program can be legal or illegal depending on
> the partitioning scheme, which is not expressed in code.
    "All forms of remote subprogram calls are potentially blocking
operations."  So the final physical partitioning may decide whether a
particular call is actually blocking, but if it's a remote subprogram
call, even if the whole program is physically in one partition, then
the call is "potentially blocking" and thus illegal from a protected type.



  reply	other threads:[~2012-06-05 18:35 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-04 18:49 Distributed Systems Annex, data sharing between programs Adam Beneschan
2012-06-05  7:36 ` Maciej Sobczak
2012-06-05 16:02   ` Adam Beneschan
2012-06-05 18:35     ` tmoran [this message]
2012-06-06  7:14     ` Jacob Sparre Andersen
2012-06-06  7:39     ` Maciej Sobczak
2012-06-06  8:07       ` Dmitry A. Kazakov
2012-06-06 10:09       ` Niklas Holsti
2012-06-06 11:40         ` Maciej Sobczak
2012-06-06 12:08           ` Dmitry A. Kazakov
2012-06-06 19:17           ` Simon Wright
2012-06-08 11:38             ` Peter C. Chapin
2012-06-08 16:29               ` Simon Wright
2012-06-06 20:02           ` Niklas Holsti
2012-06-07 10:37             ` Maciej Sobczak
2012-06-08  2:11               ` Shark8
2012-06-08  6:31                 ` Pascal Obry
2012-06-08 21:26                 ` Maciej Sobczak
2012-06-09  1:10                   ` tmoran
2012-06-09 12:02                     ` Maciej Sobczak
2012-06-09 12:25                       ` Pascal Obry
2012-06-09 20:29                         ` Maciej Sobczak
2012-06-09  6:59                   ` Dmitry A. Kazakov
2012-06-13 10:55                     ` Marius Amado-Alves
2012-06-13 13:26                       ` Dmitry A. Kazakov
2012-06-14 20:29                       ` tmoran
2012-06-09  9:59                   ` Pascal Obry
2012-06-09 15:14                   ` Robert A Duff
2012-06-09 20:40                     ` Maciej Sobczak
2012-06-07  0:55           ` BrianG
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox