[英]How do Operating Systems schedule multiple threads on multiple CPU cores simultaneously?
[英]Why schedule threads between cpu cores expensive?
有一些文章提到了所謂的內核親緣關系,並且該技術會將線程綁定到內核,這將減少內核之間調度線程的成本。 相反,這是我的問題。
為什么操作系統在內核之間調度線程時會花費更多時間。
您可能會誤解所讀內容。 這並不是實際的調度速度變慢,而是任務移至新內核時運行速度會變慢,因為每個內核的專用高速緩存會變得很冷。
(更糟糕的是,舊內核臟了,需要回寫才能讀取它們。)
在大多數操作系統中,將任務“調度到內核”並不是很多,因為運行在每個內核上的內核都可以抓取當前可運行的最高優先級任務,但受親和力掩碼的限制 。 (此核心上的調度程序功能將僅考慮其親和力掩碼與此核心匹配的任務。)
沒有單線程的主控程序來決定每個內核應該做什么。 普通內核中的調度程序是一種協作多線程算法。
這主要不是內核調度程序功能中CPU時間的實際開銷,而是任務在新內核上運行的速度較慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.