Inter-Process Communications (IPC)
in Distributed Systems (or Parallel Progs)
Some Terminology
-
processes
vs.
threads
A
process consists of:
- in-memory copy of the machine code
- memory area (block of virtual memory)
containing variables —
stack and heap
- values that the OS cares about (e.g.,
open files, process owner & permissions)
- process state/context: register values, physical memory
addressing
-
- distributed systems
vs.
parallel programs
- running concurrently (both)
- using shared resources
OR
working together in some way,
OR
some combination of the above
(both)
Common models of working together:
- producer/consumer: (variation: single producer, multiple consumers
- peer-to-peer
- client/server (special case of peer-to-peer)
Alyce Brady, Kalamazoo College