操作係統

操作係統調度算法

操作係統調度算法

到目前為止,在本操作係統教程中,您已經了解了操作係統的類型、操作係統的服務、操作係統的屬性、進程、進程調度,現在您將了解一些進程調度算法,您的係統將使用這些算法來選擇進程。

先到先得(FCFS)

讓我們從好處開始:

FCFS算法不涉及任何複雜的邏輯,它隻是將函數請求設置在一個隊列中,然後逐一執行。

因此,FCFS很容易實現。

最終,每個進程都將獲得運行的機會,因此不會發生饑餓。

是時候說說缺點了:

進程的搶占是不可替代的。如果一個進程已經啟動,那麼CPU將執行該方法直到它結束。

因為沒有搶占,如果一個進程執行了一段較長的時間,隊列後麵的進程需要等待較長的時間才能得到執行的機會。

最短作業優先(SJF)

從最短作業優先調度算法的優點開始。

根據定義,先執行較短的流程,然後執行較長的流程。

吞吐量增加了,因為通常在更少的時間內執行更多的進程。

缺點:

CPU應該提前知道進程所需的時間,但這是不可能的。

時間越長,等待的時間就越長,最終,它們會餓死。

注:搶占式最短作業優先調度與SJF調度有相同的優缺點。

輪循(RR)

以下是應用輪循調度的一些好處:

CPU為每個進程提供一定的硬性和硬性時間量,因此所有進程都具有相同的優先級。

饑餓不會發生,因為對於每個循環循環,每個流程都有一個嚴格且快速的執行時間。不遺漏任何流程。

缺點是:

RR中的吞吐量很大程度上取決於時間量子長度的選擇。如果時間量值比所需的長,它往往表現出與FCFS相同的行為。

如果時間量程比需要的短,CPU從一個進程切換到另一個進程的次數就會增加。這將導致CPU效率的降低。

基於優先級的調度

優先級調度的好處:

一個過程的重要性一般是選擇強化的記憶必要性,時間限製或用戶傾向。例如,一款高端遊戲將擁有更好的圖像,這意味著在遊戲過程中更新屏幕的方法將具有更高的優先級,從而實現更好的圖像性能。

一些缺點:

需要另一種調度算法來調度具有相同優先級的進程。

在戰術優先級調度中,一個改進的優先級進程可以在先前執行的低優先級進程之前完成。如果低優先級進程一直期待高優先級進程,就會發生饑餓。

調度算法在幾種情況下的使用

每個調度算法都有一個特點,那就是它是最簡單的選擇。讓我們來看看不同的情況:

情況1:

傳入的流程很短,並且不需要在特定的順序期間執行流程。

在這種情況下,FCFS的作用與SJF和RR不同,因為過程很短,這意味著沒有過程會等待一個擴展的時間。當每個進程被一個一個地執行時,每個進程最終都會被執行。

情況2:

流程是長流程和短流程的融合,因此,隻有當所有流程在給定時間內成功完成時,作業才會執行。

在這裏,輪循調度工作得很有效,因為它不會導致饑餓,並且為每個進程提供了相等的時間量。

情況3:

這些流程混合了基於用戶的流程和基於內核的流程。

在這種情況下,基於優先級的調度能夠有效地工作,因為與基於用戶的進程相比,基於內核的進程具有更高的優先級。

例如,調度器本身可能是一個基於內核的進程,它應該首先運行,以便能夠調度其他進程。

Baidu
map