3
เธรดเดี่ยวทำงานบนหลายคอร์ได้อย่างไร
ฉันพยายามที่จะเข้าใจในระดับสูงว่าเธรดเดี่ยวทำงานในหลายคอร์ได้อย่างไร ด้านล่างเป็นความเข้าใจที่ดีที่สุดของฉัน ฉันไม่เชื่อว่ามันถูกต้อง จากการอ่านHyper-threadingของฉันดูเหมือนว่าระบบปฏิบัติการจะจัดการคำแนะนำของเธรดทั้งหมดในลักษณะที่พวกเขาไม่ได้รอซึ่งกันและกัน จากนั้น Front-end ของ CPU จะจัดระเบียบคำแนะนำเหล่านั้นเพิ่มเติมโดยกระจายเธรดหนึ่งเธรดไปยังแต่ละคอร์และกระจายคำสั่งที่เป็นอิสระจากแต่ละเธรดในทุกรอบที่เปิด ดังนั้นหากมีเพียงเธรดเดียวดังนั้นระบบปฏิบัติการจะไม่ทำการเพิ่มประสิทธิภาพใด ๆ อย่างไรก็ตามส่วนหน้าของ CPU จะแจกจ่ายชุดคำสั่งที่เป็นอิสระในแต่ละคอร์ ตามhttps://stackoverflow.com/a/15936270ภาษาการเขียนโปรแกรมเฉพาะอาจสร้างเธรดมากขึ้นหรือน้อยลง แต่ไม่เกี่ยวข้องเมื่อพิจารณาว่าจะทำอย่างไรกับเธรดเหล่านั้น ระบบปฏิบัติการและ CPU จัดการสิ่งนี้ดังนั้นจึงเกิดขึ้นโดยไม่คำนึงถึงภาษาการเขียนโปรแกรมที่ใช้ เพียงเพื่อชี้แจงฉันถามเกี่ยวกับเธรดเดียวที่รันในหลายคอร์ไม่ใช่เกี่ยวกับการรันหลายเธรดบนแกนเดียว เกิดอะไรขึ้นกับบทสรุปของฉัน คำสั่งของเธรดอยู่ที่ไหนและอย่างไรแบ่งออกเป็นหลายแกน ภาษาการเขียนโปรแกรมสำคัญหรือไม่ ฉันรู้ว่านี่เป็นวิชาที่กว้างขวาง ฉันหวังว่าจะเข้าใจมันในระดับสูง