2011-05-17 102 views

回答

0

兩種機制可用:自願或基於硬件。

http://lwn.net/Articles/95334/

從最近的補丁所產生的自願搶佔已被引入到內核:

http://kerneltrap.org/node/3440

這意味着CPU將明確放棄目前的工作,讓調度接手選擇活動任務列表中的下一個任務。已發現,在非自願搶佔自願搶佔性能改進這種方式(這是定時器時鐘爲主)

更多信息:

http://wiki.osdev.org/Context_Switching(軟件VS硬件上下文切換 - 類似於我們這裏所說的)

http://wiki.osdev.org/Scheduling_Algorithms

0

有在Linux內核中沒有調度線程。調用schedule()函數的具體情況。例如:

1)當進程或內核線程在內核模式下顯式調用它時。如果需要等待某個事件發生,則進程通常會調用schedule()函數;如來自輸入輸出設備的數據的可用性。

2)當優先級高於當前進程的進程正在等待某個事件併發生事件時。

3)當分配給當前進程的時間片到期時。

相關問題