RFC 62 (rfc62) - Page 2 of 20
Systems for Interprocess Communication in a Resource Sharing Computer Network
Alternative Format: Original Text Document
RFC 62 IPC for Resource Sharing 3 August 1970
permit communication between remote processes. The second part of
the study presents such a generalization. The application of this
generalized system to the ARPA Computer Network [9] is also
discussed.
The ideas enlarged upon in this paper came from many sources.
Particularly influential were -- 1) an early sketch of a Host
protocol for the ARPA Network by S. Crocker of UCLA and W. Crowther
of Bolt Beranek and Newman Inc. (BBN); 2) Ackerman and Plummer's
paper on the MIT PDP-1 time-sharing system [1]; and 3) discussions
with W. Crowther and R. Kahn of BBN about Host protocol, flow
control, and message routing for the ARPA Network. Hopefully, there
are also some original ideas in this note. I alone am responsible
for the collection of all of these ideas into the system described
herein, and I am therefore responsible for any inconsistencies or
bugs in the system.
It must be emphasized that this paper does not represent an official
BBN position on Host protocol for the ARPA Computer Network.
2. A System for Interprocess Communication within a Time-Sharing System
This section describes a set of operations enabling interprocess
communication within a time-sharing system. Following the notation
of [10], I call this interprocess communication facility an IPC. As
an aid to the presentation of this IPC, a model for a time-sharing
system is described; this model is then used to illustrate the use of
the interprocess communication operations.
The model time-sharing has two pieces: the monitor and the processes.
The monitor performs such functions as switching control from one
process to another process when a process has used "enough" time,
fielding hardware interrupts, managing core and the swapping medium,
controlling the passing of control from one process to another (i.e.,
protection mechanisms), creating processes,caring for sleeping
processes, and providing to the processes a set of machine extending
operations (often called Supervisor or Monitor Calls). The processes
perform the normal user functions (user processes) as well as the
functions usually thought of as being supervisor functions in a
time-sharing system (systems processes) but not performed by the
monitor in the current model. A typical system process is the disc
handler or the file system. System processes is the disc handler or
the file system. System processes are probably allowed to execute in
supervisor mode, and they actually execute I/O instructions and
perform other privileged operations that user processes are not
allowed to perform. In all other ways, user and system processes are
identical. For reasons of efficiency, it may be useful to think of
Walden