最近學習自考學到程序排程,其中的排程演算法看著很複雜,細想又很簡單,接下來簡單介紹一下:
先來先服務演算法
理論定義
我的理解
排程演算法
從就緒佇列的隊首選擇最先到達就緒佇列的程序,為該程序分配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...