Process
- โปรแกรมที่กำลังทำงาน (Program in execution)
- สร้างช้า, จบช้า, Context switch ช้า
- ใช้ทรัพยากรระบบมาก (Heavy-weight)
- Communication ระหว่าง Process ยาก (IPC)
- Isolated: มี PCB, Stack, Address Space ของตัวเอง
- ถ้า Process หนึ่ง blocked อื่นๆ รอได้
Thread
- ส่วนย่อยของ Process (Light-weight process)
- สร้างเร็ว, จบเร็ว, Context switch เร็ว
- ใช้ทรัพยากรน้อย แชร์ Memory กับ Thread อื่นใน Process เดียวกัน
- Communication ง่าย (Shared memory)
- มี Thread Control Block, Stack, แต่แชร์ Address Space และ PCB กับ Process หลัก
- Thread หนึ่ง blocked Thread อื่นยังทำงานได้
- Switch ไม่ต้องเรียก OS
สรุป
| คุณสมบัติ | Process | Thread |
|---|---|---|
| น้ำหนัก | Heavy-weight | Light-weight |
| Memory | แยกต่างหาก | แชร์กัน |
| Context Switch | ช้า (ผ่าน OS) | เร็ว (ไม่ต้อง OS) |
| Communication | ยาก (IPC) | ง่าย (Shared memory) |
| Isolation | เต็มรูปแบบ | บางส่วน |