在操作系統中,調度是指一種資源分配,因而調度算法是指:根據系統的資源分配策略所規定的資源分配算法,對于不同的系統和系統目標,通常采用不同的調度算法。以下就linux的進程調度算法加以解釋。
一、以下算法用于實時系統
1、 時間片輪轉調度算法(round-robin):SCHED_RR,系統使每個進程依次地按時間片輪流執行的方式。該算法的基本思想是,將CPU的處理時間劃分為一個一個的時間片,就緒隊列中的進程輪流運行一個時間片。當時間片結束時,就強迫進程讓出CPU,該進程進入就緒隊列,等待下一次調度,同時進程調度又去選擇就緒隊列中的一個進程,地分配給它一個時間片,以投入運行。
2、 先進先出調度算法(FIFO):采用FIFO實時進程必須是運行時間較短的進程,因為這種進程一旦獲得CPU就只有等到它運行完或因等待資源主動放棄CPU時其他進程才會獲得運行機會。該算法按照進程進入就緒隊列的先后次序來選擇。即每當進入進程調度,總是把就緒隊列的隊首進程投入運行。
二、以下算法用于分時系統
最高優先級算法(HPF):SCHED_NORMAL,用于分時進程。系統選擇運行隊列中優先級最高的進程運行。Linux采用搶占式的優先級算法,即系統中當前運行的進程永遠是可運行進程中優先權最高的那個
本人所用的操作系統的版本以及內核版本
使用cat /etc/redhat-release命令查看操作系統版本,如下:
CentOS release 6.5 (Final)
使用uname -r查看內核版本,如下:
2.6.32-431.el6.i686
新聞熱點
疑難解答