When 2 or more processes are in execution at the same time, they can be independent or cooperative. We may want cooperative processes for:
- Information sharing
- Computation speedup. Split a task into subtasks
- Modularity. Build the system into modules
- Convenience. User can delete a task without larger effect
Interprocess communication allows 2 processes to cooperate. They can either share memory or send messages to each other.