แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | multiprocessing | multithreading |
---|---|---|
ขั้นพื้นฐาน | มัลติโพรเซสซิงเพิ่ม CPU เพื่อเพิ่มพลังการประมวลผล | มัลติเธรดสร้างหลายเธรดของกระบวนการเดียวเพื่อเพิ่มพลังในการคำนวณ |
การกระทำ | กระบวนการหลายอย่างถูกดำเนินการพร้อมกัน | มีการดำเนินการหลายเธรดของกระบวนการเดียวพร้อมกัน |
การสร้าง | การสร้างกระบวนการใช้เวลานานและใช้ทรัพยากรอย่างเข้มข้น | การสร้างเธรดนั้นประหยัดทั้งเวลาการรับรู้และทรัพยากร |
การจัดหมวดหมู่ | มัลติโพรเซสซิงสามารถสมมาตรหรือไม่สมมาตร | มัลติเธรดไม่ได้จัดประเภท |
ความหมายของการประมวลผลแบบมัลติโพรเซสเซอร์
ระบบมัลติโปรเซสเซอร์เป็นระบบที่มีโปรเซสเซอร์มากกว่าสองตัว CPU จะถูกเพิ่มเข้าไปในระบบเพื่อเพิ่มความเร็วในการคำนวณของระบบ CPU แต่ละตัวมีชุดการลงทะเบียนและหน่วยความจำหลักของตัวเอง เพียงเพราะซีพียูแยกกันอาจเกิดขึ้นได้ว่า CPU ตัวใดตัวหนึ่งต้องไม่มีสิ่งใดที่ต้องดำเนินการและอาจจะไม่ได้ทำงานและอีกอันอาจมีภาระงานมากเกินไป ในกรณีเช่นนี้กระบวนการและทรัพยากรที่ใช้ร่วมกันแบบไดนามิกระหว่างโปรเซสเซอร์
มัลติโพรเซสซิ่งสามารถแบ่งได้เป็นมัลติโพรเซสเซอร์ แบบสมมาตร และมัลติโพรเซสเซอร์ แบบ อสมมาตร ในการประมวลผลหลายตัวแบบสมมาตรโปรเซสเซอร์ทั้งหมดมีอิสระที่จะรันกระบวนการใด ๆ ในระบบ ในการประมวลผลทวีคูณแบบอสมมาตรจะมีความสัมพันธ์ระหว่างตัวประมวลผลหลัก ตัวประมวลผลหลักรับผิดชอบการจัดสรรกระบวนการให้กับตัวประมวลผลสลาฟ
หากโปรเซสเซอร์มี คอนโทรลเลอร์หน่วยความจำในตัว การเพิ่มโปรเซสเซอร์จะเพิ่มจำนวนหน่วยความจำที่สามารถกำหนดแอดเดรสได้ในระบบ การประมวลผลแบบมัลติโพรเซสเซอร์สามารถเปลี่ยนรูปแบบการเข้าถึงหน่วยความจำจากการเข้าถึงหน่วยความจำแบบ สม่ำเสมอ ไปสู่ การเข้าถึงหน่วยความจำแบบ nonuniform การเข้าถึงหน่วยความจำแบบเดียวกันจะใช้เวลาเท่ากันในการเข้าถึง RAM จากโปรเซสเซอร์ใด ๆ ในทางตรงกันข้ามการเข้าถึงหน่วยความจำที่ไม่สม่ำเสมอนั้นใช้เวลานานกว่าในการเข้าถึงบางส่วนของหน่วยความจำกว่าส่วนอื่น ๆ
ความหมายของมัลติเธรด
มัลติเธรดคือการประมวลผลเธรดจำนวนมากของกระบวนการเดียวพร้อมกันภายในบริบทของกระบวนการนั้น ตอนนี้ให้เราก่อนหารือเกี่ยวกับเธรดคืออะไร เธรด ของกระบวนการหมายถึงส่วนรหัสของกระบวนการซึ่งมี ID เธรดของตัวเองตัวนับโปรแกรมการลงทะเบียนและสแต็กและสามารถดำเนินการได้อย่างอิสระ แต่เธรดที่อยู่ในกระบวนการเดียวกันจะต้องแชร์ข้าวของของกระบวนการนั้นเช่นรหัสข้อมูลและทรัพยากรของระบบ การสร้างกระบวนการแยกต่างหากสำหรับแต่ละคำขอบริการใช้เวลาและทรัพยากรระบบไอเสีย แทนที่จะทำให้เกิดค่าใช้จ่ายนี้จะมีประสิทธิภาพมากกว่าในการสร้างเธรดของกระบวนการ
การสร้างเธรดนั้น ประหยัด เนื่องจากใช้รหัสและข้อมูลของกระบวนการร่วมกัน ดังนั้นระบบจึงไม่จำเป็นต้องจัดสรรทรัพยากรแยกต่างหากสำหรับแต่ละเธรด มัลติเธรดสามารถ เพิ่มขึ้นได้ บนระบบปฏิบัติการหลายตัวประมวลผล ในฐานะที่เป็นมัลติเธรดในหลาย CPU เพิ่มความ เท่าเทียม
ความแตกต่างที่สำคัญระหว่างการประมวลผลหลายอย่างและมัลติเธรด
- ความแตกต่างที่สำคัญระหว่างการประมวลผลแบบมัลติโพรเซสเซอร์และมัลติเธรดคือการประมวลผลแบบมัลติโพรเซสเซอร์ช่วยให้ระบบมีซีพียูมากกว่าสองตัวในระบบในขณะที่มัลติเธรดช่วยให้กระบวนการสร้างเธรดจำนวนมาก
- ระบบ หลายกระบวนการประมวลผล ดำเนินการ หลายกระบวนการ พร้อมกันในขณะที่ระบบมัลติเธรดให้ดำเนินการ หลายเธรด ของกระบวนการพร้อมกัน
- การสร้างกระบวนการสามารถ ใช้เวลา และ แม้แต่หมด ทรัพยากรระบบ อย่างไรก็ตามการสร้างเธรดนั้น ประหยัด เนื่องจากเธรดที่อยู่ในกระบวนการเดียวกันจะแชร์ข้าวของของกระบวนการนั้น
- กระบวนการมัลติโพรเซสซิ่งสามารถแบ่งออกเป็นมัลติโพรเซสเซอร์ แบบสมมาตร และมัลติโพรเซสเซอร์ แบบ อสมมาตร ในขณะที่มัลติเธรดไม่ได้ถูกจัดประเภทเพิ่มเติม
สรุป:
ประโยชน์ของมัลติเธรดสามารถเพิ่มขึ้นทีละน้อยในสภาพแวดล้อมมัลติโพรเซสเซอร์ขณะที่มัลติเธรดบนระบบมัลติโพรเซสซิงจะเพิ่มความขนาน