From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,1eef1e815cf70416 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.204.132.81 with SMTP id a17mr3261594bkt.4.1338921358433; Tue, 05 Jun 2012 11:35:58 -0700 (PDT) MIME-Version: 1.0 Path: e27ni17115bkw.0!nntp.google.com!news2.google.com!volia.net!news2.volia.net!feed-A.news.volia.net!newsfeed.utanet.at!newsfeed.tele2net.at!aioe.org!.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: Distributed Systems Annex, data sharing between programs Date: Tue, 5 Jun 2012 18:35:51 +0000 (UTC) Organization: Aioe.org NNTP Server Message-ID: References: <8055acf5-188f-4b34-b4f0-83d70fee54f8@googlegroups.com> NNTP-Posting-Host: Lf0Nl3CcQzx+ocHx9cmuGg.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 X-Newsreader: Tom's custom newsreader Date: 2012-06-05T18:35:51+00:00 List-Id: > .. 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.