CPU上下文切換問題?

時間 2021-06-20 13:30:38

1樓:

個人理解:

時間片輪轉並沒有要求獲得執行時間的執行緒必須執行滿這個時間片,它可能因為等待其他資源,或者主動讓出事件等方式退讓,從而切換上下文到其它時間片任務。

OS給每個CPU core上都安排了乙個就緒佇列,裡面存放了接下來需要執行的任務,如果這個佇列空了,那就執行pid 0,也就是idle程序。

所以你要求的每秒cs固定的場景,可能存在,但必須滿足以下要求:

所有任務都持續執行滿時間片,不會主動出讓CPU時間

所有任務優先順序均等,不存在更高優先順序任務搶占或者軟硬體中斷搶占

任務是CPU bounded,不會因為等待IO或者其它資源被掛起

任務數量充足使得所有CPU core的就緒佇列都排滿了同等任務,避免CPU空閒排程至idle

這些個條件任何乙個在實際場景中都很難達成,所以cs不可能是固定不變的。

2樓:周德龍

如果是純碎時間片輪轉法那麼你說的是對的,但是現如今的核心不是單純的時間片輪轉法,因為那樣的排程策略無法滿足很多場景。linux的方式包括了排程類設定、靜態優先順序設定、針對時間片的控制、休眠喚醒的處理、核心搶占等等,所以整體看上去不再是單純的時間片輪轉,而是被稱為完全公平排程方式,即總體是該你上時你就能上。

作業系統的核心進行了上下文切換後,處理器的pc是怎麼知道要改變指向機器語言指令的位址?

題主這個問的不太清楚,核心進行上下文切換,是r3進入r0的上下文切換?還是執行緒切換上下文?還是異常產生或者恢復導致的上下文切換?前乙個主要通過cpu本身的機制實現,sysenter會把當前的ip和sp存入msr暫存器,再把存在另乙個msr暫存器中的ip和sp設定到相應的暫存器。後兩個主要將上下文儲...

什麼是 上下文 ?

下愚 可能看英語會容易理解一點點 context the circumstances that form the setting for an event,statement,or idea,and in terms of which it can be fully understood and a...

DAX 篩選上下文和行上下文是什麼意思?

PowerBI學堂 上下文是需要了解的重要 DAX 概念之一。DAX 中有兩種上下文型別 行上下文和篩選上下文。首先我們來看看行上下文。行上下文 將行上下文想象成當前行是最簡單的做法。每當公式中含有應用了篩選器以識別表中某一行的函式時,都可應用此方法。函式會應用所篩選的表中每行的固有行上下文。這種型...