HPlogo Interprocess Communication: Programmer's Guide: HP 3000 MPE/iX Computer Systems > Chapter 1 What is Interprocess Communication?

Purposes of IPC

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

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.

Feedback to webmaster