Browse Prior Art Database

Real-Time Message Passing in UNIX-Like Architectures

IP.com Disclosure Number: IPCOM000115778D
Original Publication Date: 1995-Jun-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 39K

Publishing Venue

IBM

Related People

Murray, E: AUTHOR [+2]

Abstract

Operating systems like UNIX* do not allow for fast message passing between processes. Real-time operations require quick messages between processes for notification of events and timing.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 85% of the total text.

Real-Time Message Passing in UNIX-Like Architectures

      Operating systems like UNIX* do not allow for fast message
passing between processes.  Real-time operations require quick
messages between processes for notification of events and timing.

      Two fields are added to the pre-process process table, one that
is a counter of the number of messages that a process has received
but not yet read, and the other to hold a pointer to a chain of
addresses
that are pointers to the kernal data space that holds each message.

      When a process wants to send a message, it uses a kernal
routine to increment the "message received" counter in the receiving
processes process table entry, and to add a pointer to the message
data to the message address chain in the process table.  The kernel
then schedules the receiving process to be awakened next, so it can
receive its messages by transversing the chain of message pointers in
its process table.  Each messages is "received" by changing the
access bits on the page on which it resides, so that the receiving
process can access that page without copying the data.  Each process
that wants to receive messages will have registered a message handler
routine which is executed by the scheduler when the receiving process
is awakened.

      The message-handling code then becomes a sort of
"super-interrupt," receiving messages and acting on them.  Since
sleeping receiver processes are awakened immediately after the
sending...