OS 程序排程演算法

2021-08-15 22:00:53 字數 1012 閱讀 6690

最近學習自考學到程序排程,其中的排程演算法看著很複雜,細想又很簡單,接下來簡單介紹一下:

先來先服務演算法

理論定義

我的理解

排程演算法

從就緒佇列的隊首選擇最先到達就緒佇列的程序,為該程序分配cpu

排隊,先到先得

效能分析

適合長程序,不利於短程序,短程序等待時間相對於執行時間而言太長

排隊要做的事時間不宜太短,要不排那麼長時間對不至於

先來先服務演算法

理論定義

我的理解

排程演算法

從就緒佇列的隊首選擇估計執行時間最短的程序,講處理機分配給它,使它立即執行並一直執行完成,或發生某事件而被阻塞放棄處理機時,再重新排程。

同時做很多件事情的時候感覺哪件事用時短就先做哪個。

演算法優點

與fcfs演算法相比,能有效降低程序的平均等待時間,提高系統的吞吐量

反正這麼些事怎麼排都要5個小時做完,先做做的快的,少幾件事等著了。

演算法的缺陷

1.對長程序不利 2.不能保證程序的及時處理,演算法不考慮程序的緊迫程度 3.程序的長短根據使用者估計,不一定真正做到短程序優先。

1.需要做很長時間的事情只能放到最後了 2.沒有考慮說不定時間長的事情著急完成呢 3.自己估計的哪件事做的快不快,不准。

優先權排程演算法

理論定義

我的理解

排程演算法

每個程序乙個優先權,程序排程時,系統將cpu分配給就緒佇列中優先權值最高的程序

給每件事根據各種分析列個重要級別,每次做中間最重要的

型別非搶占式

不管新來的事情重不重要先做完手中的工作再說

搶占式新來的事情比正在做的重要,手中的工作先放一放

問題:無窮堵塞

低優先權程序無窮等待cpu

新來的每一件事都比較重要,一開始不太重要的事一放再放也輪不到做了

解決方案:老化技術

使低優先權程序在等待時間很長的情況下,優先權變高而獲得cpu執行

一件事情等的時間長了就把它提上日程。

OS之程序排程

處理機排程 在多道程式程式的環境中,記憶體中存在著多個程序,程序往往大於處理機數目,這就要系統按照某種演算法,動態的將處理機分配給處於就緒狀態的程序。是之執行,分配處理機的任務就是由處理機排程完成的。排程實質上是一種資源分配。處理機排程演算法的目標 處理價排程演算法的共同目標 1 資源利用率,為了提...

OS之程序排程(二)

時間片輪轉演算法 在分時系統中,最簡單最常用的是基於時間片的輪轉排程演算法,讓就緒佇列上的每個程序僅執行乙個時間片。輪 的基本原理 在就緒佇列中,系統可設定每隔一定時間便產生乙個中斷,去啟用程序排程程式進行排程,把cpu 分配給隊首程序,並令其執行乙個時間片,當其執行完畢後,又把處理機分配給佇列的新...

OS 磁碟排程演算法

c 實現的 fcfs sstf scan 和 cscan 四種磁碟排程演算法。磁碟排程演算法 by darius include include include define max 1000 using namespace std 求平均尋道長度 double erage int length,i...