چونکہ ہر process کا ایک الگ تھلگ address space ہوتا ہے، وہ یونہی variables شیئر نہیں کر سکتے — انہیں inter-process communication (IPC) درکار ہوتی ہے۔ OS کئی طریقے پیش کرتا ہے، جو رفتار، سمت، اور آیا وہ مشینوں کے آر پار کام کرتے ہیں، میں مختلف ہیں۔
اہم طریقے
Pipe / FIFO → byte stream, one direction; anonymous pipe = parent↔child, named FIFO = any procs
e.g. ls | grep foo (the shell wires stdout→stdin via a pipe)
Shared memory → both map the SAME physical pages → FASTEST (no copy), but you must
synchronize access yourself (semaphore/mutex)
Message queue → kernel-managed queue of discrete messages; decoupled, preserves boundaries
Socket → bidirectional stream/datagram; UNIX-domain (same host) or TCP/UDP (across network)
Signal → tiny async notification (a number), e.g. SIGINT, SIGTERM — control, not data transfer
