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