推選答案Linux版本的Linux內核,使用新的調度算法,該算法是O(1)調度算法由Ingo Molnar的開發(fā)。在高負載的情況下,這是極好的,處理器調度,具有良好的擴展。
預先包裝的Linux 2.4版本的標準調度,使用的時間的切片重新計算算法。此算法要求已用盡所有進程的時間片后,重新計算下一次運行的時間片。所以每個任務調度支出不確定的,可能是因為計算比較復雜,較大的調度延遲。特別是在多處理器系統(tǒng)中,也可能是由于調度延遲,導致大部分處理器空閑/>狀態(tài),影響系統(tǒng)的性能。
調度調度算法O(1),組的數(shù)據(jù)結構來實現(xiàn)的優(yōu)先級??梢允挂唤M中的優(yōu)先級,每個優(yōu)先級都有一個對應的任務隊列,有一個優(yōu)先級位圖,位圖中的每一個優(yōu)先級對應的位圖,可以快速執(zhí)行最高優(yōu)先級任務。由于優(yōu)先級的數(shù)目是固定的,因此,發(fā)現(xiàn)固定的時間,未運行的任務數(shù)的影響。

調度組的優(yōu)先級為每個處理器維護兩個有效和過期數(shù)組:數(shù)組。陣列內的任務隊列進程有效運行時間切片;陣列任務隊列進程的時間片內到期的可被執(zhí)行。當一個進程的時間片用完時,它移動到過期的陣列的有源陣列,和時間片已被重新計算。當需要重新安排這些任務,只要在有效陣列開關和過期數(shù)組就好了。這種交換為O(1)算法。
更多的算法,谷歌!