inter-process communication

Dana Eckart dana at gatech.CSNET
Fri Jan 31 05:49:39 AEST 1986


I don't know if this has been asked before, but here goes anyway...

I am working on a project in which I wish to set up virtual machines
(modeled as processes) which communicate over a virtual network (the
ipc).  I am currently using the parent process to form a bi-directional
ring network through the use of "fork" and some pipes.  In this way,
I can have upwards of 20 machines (processes) in my network (at least 
under the current configuration of unix on the machine).

The problem occurs in the sending of messages through the pipes.  How do
I let the receiving process know that something is there?  I have used
"select" with busying waiting, and although this works, it is obviously
not very desirable.  "fcntl" was tried, until it was realized that unix
4.2bsd doesn't support it for SIGIO (although we are actually using
4.2BRL).  It has even come to the point where "kill" messages were sent
explicitly, only to realize that signals are not stacked (blocked) but
ORed with the current mask.  (Since there is a great deal of communication,
some sort of signal block seems to be a must in my application.)  I realize
that sockets were developed to handle this sort of thing, but they are
given little support in 4.2 (or at least it seems that way to me).  I would
prefer to use pipes if possible anyway.

Now for the question, does anyone have any experience in doing something
similiar to what I have described above?  More hopefully, has anyone "hacked"
on fcntl enough to get it to work for SIGIO (this of course seems the most
preferable solution to my problem)?  I am not a unix wiz by any means (I
hope I haven't botched the description of the problem either :-)), so any
help which could be offered would be greatly appreciated.

Thanks in advance...

--dana eckart (dana at gatech)



More information about the Comp.unix.wizards mailing list