《計算機基礎知識REVIEW》 作業系統 排程演算法

2021-09-08 07:18:29 字數 2168 閱讀 2055

排程演算法是根據系統的資源分配策略所規定的資源分配演算法。排程演算法必須實現幾個相互衝突的目標:程序響應的時間盡可能快,後台作業的吞吐量盡可能高,程序的飢餓現象盡可能避免,低優先順序和高優先順序程序的需要盡可能調和等等。

目前存在以下幾種排程演算法,適用於不同的系統,以實現不同資源管理目標: 1

)先來先服務排程演算法(fcfs,first come first served)

作業排程中:每次從後備作業佇列中選擇乙個或多個最先進入該佇列的作業,將它們調入記憶體,為它們分配資源、建立程序,然後放入就緒佇列中;

程序排程中:每次排程是從就緒佇列中選擇乙個最先進入該佇列的程序,把處理機分配給它,使之投入執行。

先來先服務排程演算法是一種非搶占式排程演算法,它能公平地使每個作業(程序)獲得處理機。

2)短作業(程序)優先排程演算法(sjf/spf,shortest job/process first)

作業排程中,從後備作業佇列中選擇乙個或若干個估計執行時間最短的作業,將它們調入記憶體;

程序排程中,從就緒佇列中選擇乙個或若干個估計執行時間最短的程序,為它們分配處理機,使之投入執行。

該演算法也是乙個非搶占式演算法。

3)時間片輪轉排程演算法

這種演算法多用於程序排程,以提高程序的併發性,縮短每乙個作業的響應時間。在通常的輪轉演算法中,系統將所有的就緒程序按「先來先服務」原則,排成乙個佇列,每次排程時把cpu分配給隊首程序,並令其執行乙個時間片。當時間片用完時,由乙個計時器發出時鐘中斷,排程程式便據此訊號來中斷該程序的執行,並將它送就緒佇列的末尾,等待下一次排程。

4)優先權排程演算法

常用於批處理系統中作為作業排程演算法,也作為多種作業系統中的程序排程演算法,更可用於實時系統中,以實現對實時作業的實時響應。

在非搶占式優先權策略下,系統一旦把處理機分配給某一高優先權的程序後,該程序便一直執行下去,知道完成或因發生某事件而程序自身阻塞,使該程序放棄處理機。

在搶占式優先權策略下,系統同樣把處理機分配給優先權最高的程序,使之執行。但一旦出現了乙個優先權更高的程序時,程序排程程式就停止原最高優先權程序的執行,而將處理機分配給新出現的優先權最高的程序。

優先權分為靜態優先權和動態優先權兩種。

5)高響應比優先排程演算法

響應比=(等待時間+要求服務時間)/要求服務時間。

該演算法即照顧了短作業,又考慮了作業到達的先後順序,不會使長作業長期得不到服務,實現了一種較好的折中。

6)多級佇列排程演算法

目前在計算機系統中,配置的作業系統即具備批處理功能,又具有分時系統的功能以適應批處理作業和互動型作業的不同需要。通常,為批處理作業所建立的程序是排入後台的就緒佇列;而為互動型作業所建立的程序,則是排入前台的就緒佇列。前台採用時間片輪轉排程演算法,後台採用優先權高者優先的排程演算法或短作業優先的排程演算法。在這種情況下,排程是對各個佇列分級進行的。

7)多級反饋佇列排程演算法

該演算法基於時間片輪轉排程演算法和優先順序演算法發展而來,卻又不必估計執行時間的長短,因而是目前公認的較好的一種程序排程演算法。

本演算法基於以下情況考慮: 1

)為提高系統吞吐量和降低程序平均等待時間而照顧短程序; 2

)為得到較好的輸入輸出裝置利用率和互動使用者的及時響應而照顧輸入輸出型程序; 3

)在程序執行過程中,按程序運**況來動態地考慮程序的性質,進行相應的排程。

在採用多級反饋佇列排程演算法的系統中,排程演算法如下: 1

)設定多個就緒佇列,並為各個佇列賦予不同的優先順序; 2

)賦予各個佇列中程序執行時間片大小也各不相同,在優先權愈高的佇列中,每個程序的執行時間片就規定得愈小;而低優先權的佇列會分配成倍於高一級優先權的佇列的時間片,即第i+1佇列的時間片比第i佇列的時間片長一倍; 3

)當乙個新程序進入記憶體後,首先將它放入第一佇列的末尾,按fcfs原則排隊等待排程;當輪到該程序執行時,如能在該時間片內完成,便可撤離系統;如果不能,排程程式便將該程序轉入第二佇列的末尾,再同樣安裝fcfs原則等待排程執行

……依次規律,直至程序完成。若程序在進入最後乙個佇列後仍未執行完,則在該佇列中採用時間片輪轉法,直至程序執行完畢。 4

)僅當第一佇列空閒時,排程程式才排程第二佇列中的程序執行;僅當第(1~i-1)隊列為空時,才排程第i佇列的程序執行。如果處理機正在執行第i佇列的程序,而此時又有新的程序進入優先權較高的任一佇列(1~i-1佇列),則此時新的程序將搶占處理機,即排程程式將處理機重新分配給新進入1~i-1佇列的程序,並把被搶占的程序投入原佇列的末尾。

計算機基礎知識 計算機基礎知識彙總

計算機專業的那六大件 組成原理,作業系統,資料庫,編譯原理,計算機網路,資料結構,其次還得加上分布式的基礎知識,因為現在的系統都變成分布式的了。如果你是做應用層開發的,那幾門課程中的有些內容和日常工作關聯度不大,我挑那些最重要的來說一說,也算是乙個最小集合吧!1,計算機組成原理 如果你不是做作業系統...

計算機基礎知識 關於計算機的基礎知識

一 計算機發展 世界計算機 1 第一台計算機 eniac,1946年,美國研製的世界上第一台計算機,開闢了計算機技術的新紀元。2 計算機之父 馮 諾依曼參與eniac研究,提出計算機的二進位制 五大組成部分 程式控制。3 計算機發展階段 第一代電子管計算機 1946 1958年。第二代電晶體計算機 ...

計算機基礎知識

計算機5大組成單元 輸入單元 輸出單元 cpu內部的控制單元 算術邏輯單元 記憶體。單有cpu是無法運作計算機的,所以計算機還需要其他的介面裝置才能夠實際執行。很顯然,主機板是必不可少的,因為主機板負責把所有的裝置連線起來,讓所有的裝置能夠進行協調通訊。而主機板上面最重要的元件就是主板晶元組了!這個...