ฉันเข้าใจว่าโปรเซสเซอร์แบบมัลติคอร์สามารถเรียกใช้หลายเธรดของกระบวนการเดียวกันในเวลาเดียวกันโดยใช้คอร์ที่แตกต่างกัน
มันสามารถรันหลายกระบวนการพร้อมกันได้หรือไม่ (แต่ละคอร์ที่รันกระบวนการแตกต่างกัน)
ฉันเข้าใจว่าโปรเซสเซอร์แบบมัลติคอร์สามารถเรียกใช้หลายเธรดของกระบวนการเดียวกันในเวลาเดียวกันโดยใช้คอร์ที่แตกต่างกัน
มันสามารถรันหลายกระบวนการพร้อมกันได้หรือไม่ (แต่ละคอร์ที่รันกระบวนการแตกต่างกัน)
คำตอบ:
เท่าที่ระบบปฏิบัติการและแอพพลิเคชั่นนั้นเกี่ยวข้องกันแต่ละคอร์เป็นโปรเซสเซอร์แยกต่างหากและอยู่ภายใต้กฎความสัมพันธ์แบบเดียวกับที่มีโปรเซสเซอร์หลายตัว
โปรเซสเซอร์ตัวใด (ไม่ว่าจะเป็นแกนประมวลผลหรือไฮเปอร์เธรด) กระบวนการทำงานขึ้นอยู่กับระบบการตั้งเวลาของระบบปฏิบัติการทั้งหมด มันเป็นระบบการจัดตารางเวลานี้ (ได้รับอิทธิพลจากการตั้งค่าความสัมพันธ์ ) ซึ่งตัดสินใจที่กระบวนการควรทำงานและเมื่อ กระบวนการและเธรดสามารถสลับระหว่างตัวประมวลผลและแกนประมวลผลได้ตามที่ตัวกำหนดตารางเวลาเห็นว่าเหมาะสม
จากความรู้ที่ จำกัด ของฉันเกี่ยวกับระบบปฏิบัติการฉันเชื่อว่าทุกกระบวนการมีเธรดอย่างน้อยหนึ่งเธรดและเป็นเธรดเหล่านี้ที่ได้รับการจัดตารางเวลาไม่ใช่ตัวกระบวนการเอง กระบวนการนี้เก็บข้อมูลเกี่ยวกับโปรแกรมและเธรดที่ตั้งค่าไว้ วิธีนี้แอปพลิเคชันเธรดเดียวจะได้รับการดูแลเหมือนกับแอปพลิเคชันแบบมัลติเธรด แต่แอปพลิเคชันแบบมัลติเธรดสามารถใช้ทรัพยากรได้ดีขึ้น
ตัวอย่างเช่นสมมติว่าเรามีสองกระบวนการที่มีสองเธรดแต่ละอันและแอปพลิเคชั่นเธรดเดี่ยวซึ่งทำงานอย่างหนักในโปรเซสเซอร์แบบดูอัลคอร์ (หรือซีพียูคู่ทำให้ไม่มีความแตกต่างที่นี่)
Process A
|_Thread A-1
|_Thread A-2
Process B
|_Thread B-1
|_Thread B-2
Process C
|_Thread C
แต่ละเธรดสามารถกำหนดตารางเวลาได้ทั่วทั้งคอร์ของซีพียูและโหลดมีความสมดุลโดยตัวจัดตารางเวลาระบบปฏิบัติการ
ถ้าเราไปและตั้งค่าความสัมพันธ์ของตัวประมวลผลสำหรับกระบวนการ B เพื่อ จำกัด ให้กับหนึ่ง CPU ดังนั้นเธรดทั้งหมดของกระบวนการนั้นจะถูกผูกไว้กับ CPU นั้นเช่นกันและจะไม่ทำงานบน CPU อื่น ๆ การทำเช่นเดียวกันกับกระบวนการ C จะทำให้ไม่มีการเปลี่ยนแปลงจริงเนื่องจากสามารถทำงานบน CPU ได้ครั้งละหนึ่งเครื่องเท่านั้น
คำตอบสั้น ๆ :
กระบวนการและเธรด (เช่นเดียวกับมัลติเธรด) เป็นโครงสร้างระดับ OS เมื่อคุณได้รับระดับต่ำพอในการจัดตารางเวลาสิ่งเหล่านี้จะหายไปและคุณจะมีเธรดการดำเนินการเข้าคิวเพื่อรับเวลาดำเนินการเท่านั้น