ایک process ایک چلتا ہوا پروگرام ہے جس کی اپنی الگ تھلگ میموری (address space) ہوتی ہے؛ ایک thread ایک process کے اندر عملدرآمد کی اکائی ہے۔ ایک process بہت سے threads رکھ سکتا ہے، اور وہ threads process کی میموری کو شیئر کرتے ہیں — لیکن ہر process ہر دوسرے process سے الگ تھلگ ہوتا ہے۔
ہر ایک کے پاس کیا ہوتا ہے
PROCESS A PROCESS B
┌─────────────────────────────┐ ┌───────────────┐
│ address space (code/heap) │ │ address space │
│ file descriptors, PID │ │ (isolated) │
│ ┌────────┐ ┌────────┐ │ │ ┌────────┐ │
│ │thread 1│ │thread 2│ ... │ │ │thread 1│ │
│ │ stack │ │ stack │ │ │ │ stack │ │
│ │ regs/PC│ │ regs/PC│ │ │ └────────┘ │
│ └────────┘ └────────┘ │ └───────────────┘
│ ▲ shared heap, globals, fds│
└─────────────────────────────┘
