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.