推選答案Linux版本的Linux內(nèi)核,使用新的調(diào)度算法,該算法是O(1)調(diào)度算法由Ingo Molnar的開發(fā)。在高負載的情況下,這是極好的,處理器調(diào)度,具有良好的擴展。
預先包裝的Linux 2.4版本的標準調(diào)度,使用的時間的切片重新計算算法。此算法要求已用盡所有進程的時間片后,重新計算下一次運行的時間片。所以每個任務(wù)調(diào)度支出不確定的,可能是因為計算比較復雜,較大的調(diào)度延遲。特別是在多處理器系統(tǒng)中,也可能是由于調(diào)度延遲,導致大部分處理器空閑/>狀態(tài),影響系統(tǒng)的性能。
調(diào)度調(diào)度算法O(1),組的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)的優(yōu)先級??梢允挂唤M中的優(yōu)先級,每個優(yōu)先級都有一個對應(yīng)的任務(wù)隊列,有一個優(yōu)先級位圖,位圖中的每一個優(yōu)先級對應(yīng)的位圖,可以快速執(zhí)行最高優(yōu)先級任務(wù)。由于優(yōu)先級的數(shù)目是固定的,因此,發(fā)現(xiàn)固定的時間,未運行的任務(wù)數(shù)的影響。
調(diào)度組的優(yōu)先級為每個處理器維護兩個有效和過期數(shù)組:數(shù)組。陣列內(nèi)的任務(wù)隊列進程有效運行時間切片;陣列任務(wù)隊列進程的時間片內(nèi)到期的可被執(zhí)行。當一個進程的時間片用完時,它移動到過期的陣列的有源陣列,和時間片已被重新計算。當需要重新安排這些任務(wù),只要在有效陣列開關(guān)和過期數(shù)組就好了。這種交換為O(1)算法。
更多的算法,谷歌!