← กลับไปยังบทความทั้งหมด

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

หลายคนมักสับสนระหว่างสองคำนี้ แต่ในความเป็นจริงมีความแตกต่างกันดังนี้:

หัวข้อMultiprocessingMultitasking
จำนวน 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) คือสถาปัตยกรรมที่ตัวประมวลผลแต่ละตัวสามารถรันคำสั่งที่แตกต่างกันบนข้อมูลที่แตกต่างกันได้พร้อมกัน ซึ่งเป็นพื้นฐานของคอมพิวเตอร์สมัยใหม่ส่วนใหญ่