EP0701205A2

Method and apparatus for space-efficient inter-process communication

Abstract

A computer-implemented method and apparatus in a computer system for inter-process communication. A first procedure allocates a first buffer in a first memory space shared by the first procedure (e.g. a client process) and a second procedure (e.g. a kernel or server process). The first procedure then marshals arguments for communicating with the second procedure in the first buffer. The first procedure indicates that a message for the second procedure is being passed and passes a first reference to the first buffer in the first memory space to the second procedure. The second procedure detects the indication of the message by the first procedure. The second procedure then references the first buffer and copies the arguments contained in the first buffer into a temporary buffer. The second procedure can then deallocate the first buffer. In implemented embodiments of the present invention, inter-process communication is more efficient because the first buffer is deallocated upon receipt of the communication by the second process.

EP0701205A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 10 July 2015, 11.2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

23 claims: 5 independent, 18 dependent

  1. 1
    A computer-implemented method in a computer system of inter-process communication comprising the following steps:a. a client procedure allocating a first buffer in a first memory space shared by said client procedure and a kernel procedure;b. said client procedure marshaling arguments for said calling of a remote procedure in said first buffer;c. said client procedure calling said remote procedure via said kernel procedure and passing a first reference to said first buffer in said first memory space to said kernel procedure;d. said kernel procedure detecting said call of said remote procedure by said client procedure and allocating a second buffer in a second memory space shared by said kernel procedure and said server procedure;e. said kernel procedure referencing said first buffer and copying said arguments contained in said first buffer into said second buffer;f. said kernel procedure deallocating said first buffer;g. said kernel procedure calling said remote procedure and passing a second reference to said second buffer to said remote procedure;h. said remote procedure detecting said calling of said remote procedure and unmarshaling said arguments in said second buffer;and i. said remote procedure deallocating said second buffer and executing.
  2. 7
    A computer-implemented method in a computer system of inter-process communication comprising the following steps:a. a first procedure allocating a first buffer in a first memory space shared by said first procedure and a second procedure;b. said first procedure marshaling arguments for communicating with said second procedure in said first buffer;c. said first procedure indicating a message for said second procedure and passing a first reference to said first buffer in said first memory space to said second procedure;d. said second procedure detecting said indicating of said message by said first procedure;e. said second procedure referencing said first buffer and copying said arguments contained in said first buffer into a temporary buffer;and f. said second procedure deallocating said first buffer.
  3. 12
    An apparatus for inter-process communication comprising:a. first circuitry for allocating a first buffer in a first memory space shared by a first procedure and a second procedure;b. second circuitry for marshaling arguments referenced by said first procedure for communicating with said second procedure in said first buffer;c. third circuitry for indicating a message for said second procedure and passing a first reference to said first buffer in said first memory space from said first procedure to said second procedure;d. fourth circuitry for detecting said indicating of said message by said first procedure;e. fifth circuitry for referencing said first buffer and copying said arguments contained in said first buffer into a temporary buffer used by said second procedure;and f. sixth circuitry for deallocating said first buffer.
  4. 14
    A computer system implementing a method of inter-process communication comprising the following steps:a. a first procedure allocating a first buffer in a first memory space shared by said first procedure and a second procedure;b. said first procedure marshaling arguments for communicating with said second procedure in said first buffer;c. said first procedure indicating a message for said second procedure and passing a first reference to said first buffer in said first memory space to said second procedure;d. said second procedure detecting said indicating of said message by said first procedure;e. said second procedure referencing said first buffer and copying said arguments contained in said first buffer into a temporary buffer;and f. said second procedure deallocating said first buffer.
  5. 19
    A computer system comprising:a. a first allocation circuit for allocating a first buffer in a first memory space shared by a first procedure and a second procedure;b. a first marshaling circuit for enabling said first procedure to marshal arguments for communicating with said second procedure in said first buffer;c. a first message indication circuit for indicating a message from said first procedure to said second procedure and passing a first reference to said first buffer in said first memory space to said second procedure;d. first message detection circuit for enabling said second procedure to detect said indicating of said message by said first procedure;e. a first referencing circuit for enabling said second procedure to reference said first buffer and copy said arguments contained in said first buffer into a temporary buffer;and f. a first deallocation circuit for enabling said second procedure to deallocate said first buffer operative upon completion of said copying of said arguments contained in said first buffer into said temporary buffer.