Multiprocessing คืออะไร? ทำความรู้จักกับการประมวลผลแบบขนาน
สรุปใจความสำคัญ
- Multiprocessing คือการใช้ CPU ตั้งแต่ 2 ตัวขึ้นไปในระบบเดียวเพื่อประมวลผลงานพร้อมกัน
- Symmetric Multiprocessing (SMP) คือระบบที่ทุก CPU มีสถานะเท่าเทียมกันในการเข้าถึงทรัพยากร
- Flynn's Taxonomy แบ่งการประมวลผลเป็น SIMD, MISD และ MIMD ตามลักษณะคำสั่งและข้อมูล
Multiprocessing หรือการประมวลผลแบบหลายตัวประมวลผล คือการใช้หน่วยประมวลผลกลาง (CPU) ตั้งแต่สองตัวขึ้นไปภายในระบบคอมพิวเตอร์เครื่องเดียว เพื่อเพิ่มประสิทธิภาพในการทำงานและรองรับการประมวลผลที่ซับซ้อนมากขึ้น โดยความสามารถนี้ช่วยให้ระบบสามารถจัดสรรงานระหว่างตัวประมวลผลต่างๆ ได้อย่างมีประสิทธิภาพ
ประเภทของ Multiprocessing
การประมวลผลแบบ Multiprocessing สามารถแบ่งออกได้เป็นหลายรูปแบบตามลักษณะการทำงานและการจัดสรรทรัพยากร ดังนี้:
1. Symmetric Multiprocessing (SMP)
ในระบบ Symmetric Multiprocessing (SMP) ตัวประมวลผลทุกตัวจะถูกปฏิบัติอย่างเท่าเทียมกัน โดยไม่มีตัวใดตัวหนึ่งถูกกำหนดให้เป็นตัวหลักหรือตัวรอง ทุก CPU จะสามารถเข้าถึงหน่วยความจำหลักและทรัพยากรของระบบได้เหมือนกัน ทำให้การกระจายงานมีความยืดหยุ่นและมีประสิทธิภาพสูง
2. Asymmetric Multiprocessing (ASMP)
ในระบบ Asymmetric Multiprocessing (ASMP) ตัวประมวลผลจะไม่เท่าเทียมกัน โดยอาจมีการกำหนดให้ CPU ตัวหนึ่งทำหน้าที่เป็น Master (ตัวหลัก) และตัวอื่นๆ ทำหน้าที่เป็น Slave (ตัวรอง) เพื่อปฏิบัติงานตามที่ได้รับมอบหมายจาก Master CPU
ระบบ Master/Slave
ระบบ Master/Slave เป็นตัวอย่างที่ชัดเจนของ ASMP โดยที่ Master CPU จะเป็นผู้ควบคุมระบบทั้งหมดและมอบหมายงานให้ Slave CPU ทำงานตามคำสั่ง ซึ่ง CPU ทั้งสองอาจมีความเร็วและสถาปัตยกรรมที่แตกต่างกันอย่างสิ้นเชิง
การจำแนกตามกระแสคำสั่งและข้อมูล (Flynn's Taxonomy)
ในทางคอมพิวเตอร์มีการใช้ Flynn's Taxonomy เพื่อจำแนกประเภทของเครื่องจักรประมวลผลตามลักษณะของกระแสคำสั่ง (Instruction Stream) และกระแสข้อมูล (Data Stream):
- SIMD (Single Instruction, Multiple Data): การใช้คำสั่งเดียวเพื่อประมวลผลข้อมูลหลายชุดพร้อมกัน มักใช้ในงานด้าน Vector Processing
- MISD (Multiple Instruction, Single Data): การใช้หลายคำสั่งเพื่อประมวลผลข้อมูลชุดเดียว มักใช้ในระบบที่ต้องการความปลอดภัยสูง (Fail-safe systems) เพื่อความซ้ำซ้อนในการตรวจสอบ
- MIMD (Multiple Instruction, Multiple Data): การใช้หลายคำสั่งเพื่อประมวลผลข้อมูลหลายชุดพร้อมกัน ซึ่งเป็นรูปแบบที่พบได้บ่อยที่สุดในระบบ Multiprocessor ทั่วไป
ความแตกต่างระหว่าง Multiprocessing และ Multitasking
หลายคนมักสับสนระหว่างสองคำนี้ แต่ในความเป็นจริงมีความแตกต่างกันดังนี้:
| หัวข้อ | Multiprocessing | Multitasking |
|---|---|---|
| จำนวน CPU | ใช้ CPU มากกว่า 1 ตัว | อาจใช้ CPU เพียงตัวเดียว |
| การทำงาน | ประมวลผลแบบขนาน (Parallel Execution) | สลับการทำงานระหว่างงาน (Time-sharing) |
| ประสิทธิภาพ | เพิ่มความเร็วในการประมวลผลจริง | สร้างความรู้สึกว่าทำงานหลายอย่างพร้อมกัน |
คำถามที่พบบ่อย
Multiprocessing ต่างจาก Multitasking อย่างไร?
Multiprocessing คือการประมวลผลแบบขนานโดยใช้ CPU หลายตัวทำงานพร้อมกันจริงๆ ในขณะที่ Multitasking คือการสลับการทำงานของ CPU ตัวเดียวอย่างรวดเร็วเพื่อให้ดูเหมือนว่าทำงานหลายอย่างพร้อมกันได้
SMP และ ASMP คืออะไร?
SMP (Symmetric Multiprocessing) คือระบบที่ทุก CPU ทำงานเท่าเทียมกัน ส่วน ASMP (Asymmetric Multiprocessing) คือระบบที่มีการแบ่งหน้าที่ชัดเจน เช่น มีตัวหลัก (Master) และตัวรอง (Slave)
MIMD คืออะไร?
MIMD (Multiple Instruction, Multiple Data) คือสถาปัตยกรรมที่ตัวประมวลผลแต่ละตัวสามารถรันคำสั่งที่แตกต่างกันบนข้อมูลที่แตกต่างกันได้พร้อมกัน ซึ่งเป็นพื้นฐานของคอมพิวเตอร์สมัยใหม่ส่วนใหญ่

