Linux系統中的程序排程演算法

2021-07-27 04:30:53 字數 829 閱讀 9003



在作業系統中,排程是指一種資源分配,因而排程演算法是指:根據系統的資源分配策略所規定的資源分配演算法,對於不同的系統和系統目標,通常採用不同的排程演算法。以下就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

linux系統中的程序排程

linux 系統中的程序排程 linux 系統支援實時和非實時兩種程序,實時程序採用 sched fifo 或者sche rr 排程策略,普通程序採用 sche other 排程策略。在排程演算法的實現上,linux 核心中每個任務都用 task struct 結構體來表示,在該結構中有四個與排程相...

Linux 程序排程演算法

程序排程 無論是在批處理系統還是分時系統中,使用者程序數一般都多於處理機數 這將導致它們互相爭奪處理機。另外,系統程序也同樣需要使用處理機。這就要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序,以使之執行。程序排程具有四條基本屬性和三個基本狀態 基本屬性 1 多型性 從誕...

Linux 程序排程演算法

linux中的程序排程演算法分類如下 一 先來先服務和短作業 程序 優先排程演算法 1 先來先服務排程演算法 fcfs 先來先服務 first come first service fcfs 排程演算法是一種最簡單的 不可搶占式的 排程演算法,既可用於作業排程,也可用於程序排程。該演算法按照程序進入...