Shared Memory Problem

Devon Tuck tuck at iris.ucdavis.edu
Fri Nov 4 22:09:45 AEST 1988


I am in the process of converting an asynchronous I/O-based system,
designed to poll a line from the National Weather Service for data, written
in FORTRAN, to our Xenix 386/20 system.  It is necessary for at least 3
different programs to have access to an input buffer which is constantly
being filled.  It would be convinient if there were some way to use C's
shared memory routines, shmctl(), shmget(), shmat() to keep all of the
Fortran programs' buffer referencing the same piece of memory dynamically.
My problem is this, I need to either find a way to simulate a "monitor
common block" in LPI-FORTRAN, *or* find a way to change the address of each
program's buffer pointer so they all reference the same chunk of C shared
memory, so that I may immediately obtain new buffer input in each of the
programs.

The closest solution I have found, is to create a host subroutine which
passes the buffer array of a program into  shared memory, loads it with the
new information, and then returns it.  The problem with this is, the loop
which checks for this new information will most probably be an infinite
loop, and continual execution of  the shared memory routine could seriously
degrade performance.

Any ideas?

+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
Devon Tuck     {tuck at iris.ucdavis.edu}
Xenix Sys-Admin, Hydrologic Engineering Center Technical Assistance Division
US Army Core of Engineers,  Davis, CA.   (916) 756-1104  ext. 18
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+



More information about the Comp.unix.xenix mailing list