HP 3000 Manuals

Purposes of IPC [ Interprocess Communication:Programmer's Guide ] MPE/iX 5.0 Documentation


Interprocess Communication:Programmer's Guide

Purposes of IPC 

IPC is a useful tool for improving the performance of your system in a
variety of complex processing situations.  For example:

 *  Programs must sometimes handle conflicting requirements.  For
    example, a program may need to perform lengthy calculations while
    simultaneously monitoring a transaction that requires frequent
    service.  If this program is broken up into several processes, one
    process can be dedicated to monitoring the transaction, ensuring that
    it gets the constant attention it requires.  Other processes can
    perform other CPU-intensive functions.  These processes can
    coordinate their efforts through the use of the IPC facility.

 *  Some tasks require more processor time than is available on a single
    machine.  These tasks can be divided into several processes and
    spread across multiple machines in a network.  File system IPC can be
    used to pass data to different processes on remote machines.
    Dividing processes across machines also takes advantage of the other
    benefits of distributed data processing.

 *  Reliability is improved because processes must interface through
    well-defined IPC records.  These interfaces are easily understood and
    verified.  Large data structures become resources that are managed by
    specialized processes.  Other processes request or update the data
    with a set of special commands passed through IPC. Unauthorized
    access or unintentional corruption can be closely controlled.

 *  When tasks are divided into independent processes using file system
    IPC, testing them becomes easier.  Inputs and outputs to the various
    processes become IPC records and tend to become well-defined commands
    and responses.  The processes can be tested individually.  Editors
    can be used to build the input records.  The output can be easily
    checked or redirected to a terminal or printer.

 *  Finally, programs can be implemented more quickly.  The overall task
    can be divided into small pieces.  Each programmer can work on a
    separate piece and run it as an independent process.  The development
    of the pieces can occur in parallel.  The pieces are modular and fit
    together through well-defined interfaces using IPC.


MPE/iX 5.0 Documentation