2013-05-25 83 views

回答

2

編號調度還會在進程停止運行時發生 - 最明顯的是,當一個進程退出時,也會在進行系統調用的任何時刻導致進程阻塞(即,內核無法返回結果的任何內容從立即)。

1

部分正確。按照當前的Linux調度程序(CFS),在每個調度程序打勾處,調度程序檢查是否是時候進行搶佔。除此之外,還有其他一些情況下計劃任務:a)創建任務時,例如fork(); b)當任務自動放棄CPU時,即通過調用schedule(); c)任務退出時。

在b & c的情況下,有可能當前的CPU沒有進程運行。在特定情況下 - 即將空閒的CPU嘗試進行負載均衡,即嘗試將忙碌CPU的負載(任務)轉移到自身,並嘗試運行該特定任務。這是對Linux上的進程如何計劃的粗略總結。