Introduction to IPC
Inter-process Communication (IPC) is the mechanism for processes to communicate and to synchronize their actions or to allow processes to exchange information. There are numerous reasons for providing an environment or situation which allows process co-operation:
Information sharing: Since some users may be interested in the same piece of information (for example, a shared file), you must provide a situation for allowing concurrent access to that information.
Computation speedup: If you want a particular work to run fast, you must break it into sub-tasks where each of them will get executed in parallel with the other tasks. Note that such a speed-up can be attained only when the computer has compound or various processing elements like CPUs or I/O channels.
Modularity: You may want to build the system in a modular way by dividing the system functions into split processes or threads.
Convenience: Even a single user may work on many tasks at a time. For example, a user may be editing, formatting, printing, and compiling in parallel.
A process can be of two types:
- Independent process.
- Co-operating process.
An independent process is not affected by the execution of other processes while a co-operating process can be affected by other executing processes. Though one can think that those processes, which are running independently, will execute very efficiently but in practice, there are many situations when co-operative nature can be utilized for increasing computational speed, convenience, and modularity.
This is the brief Introduction to IPC .
You may also like: Process Scheduling Algorithms