rich@eddie.mit.edu (Richard Caloggero) (01/14/88)
[Please *reply* to Richard and have him post a *summary* of what he gets back to the net. Double check the address, that you aren't mailing a reply to me. -mod] I am curious how people feel about various IPC techniques. I work mostly on Apollo workstations, but have recently been asked to play "god" on an Alliant (it runs Concentrix, which is basically a native BSD4.X kernel). On the Apollo, under their Aegis operating system, there isupport for 3 basic models of interprocess communication available to a user program. 1). The shared memory facility allows two processes to communicate through a common chunk of memory, and support is provided for mutual-exclusion locking allowing one to implement a samaphore abstraction. This method does not work across a network, only within a single node. It is thus useless for implementing truly parallel systems on an Apollo ring, but seems to me that it is the fastest -- requires the least amount of system overhead. 2). Aegis provides a socket abstraction, similar in spirit (I think -- never played with it) to the standard Unix socket abstraction. Again, this does not work between nodes, although I can see no reason why this restriction exists (can anyone shed some light on this point). 3). The third model is a server-client model. The actual communication takes place through a *mailbox* file, located in a particular place. This abstraction works across nodes. It assumes the existance of a filesystem which allows transparent internode file access (such as the Aegis file system). Seems to me to be the simplest to use, and since it works across the net, allows the implementation of truly parallel applications. It also seems to be the slowest, requiring the most amount of system overhead of all three methods I've mentioned. Can anyone out there comment on this stuff? What I'd like to know (aside from the basic "your totally confused about xxx, it realy is like this...", is why Unix supports strictly socket-oriented IPC, and why the formentioned restrictions exist. It seems to me that even memory could be shared among nodes -- the network paging software does something like that doesn't it? Any comments, flames, "your totaly confused" responses are quite welcome. Please, if you intend to post to one of the indicated newsgroups, send a copy to me directly, for I don't normaly read all of these! Thanx a lot (in advance). -- -- Rich (rich@eddie.mit.edu). The circle is open, but unbroken. Merry meet, merry part, and merry meet again.