操作系統中常見算法匯總


一、常見作業調度(高級調度)算法

    1、先來先服務調度算法(FCFS):就是按照各個作業進入系統的自然次序來調度作業。這種調度算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的用戶不滿意,因為短作業等待處理的時間可能比實際運行時間長得多。

    2、短作業優先調度算法(SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。

    3、最高響應比優先算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。

    基本概念:

作業周轉時間(Ti)=完成時間(Tei)-提交時間(Tsi)

作業平均周轉時間(T)=周轉時間/作業個數

作業帶權周轉時間(Wi)=周轉時間/運行時間

響應比=(等待時間+運行時間)/運行時間

    4.基於優先數調度算法(HPF):每一個作業規定一個表示該作業優先級別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。

    5.均衡調度算法,即多級隊列調度算法。

二、常見進程調度(低級調度)算法

    1、先進先出算法(FIFO):按照進程進入就緒隊列的先后次序來選擇。即每當進入進程調度,總是把就緒隊列的隊首進程投入運行。

    2、時間片輪轉算法(RR):分時系統的一種調度算法。輪轉的基本思想是,將CPU的處理時間划分成一個個的時間片,就緒隊列中的進程輪流運行一個時間片。當時間片結束時,就強迫進程讓出CPU,該進程進入就緒隊列,等待下一次調度,同時,進程調度又去選擇就緒隊列中的一個進程,分配給它一個時間片,以投入運行。

確定時間片長度要從進程數目切換開銷系統效率響應時間等多方面因素加以考慮。

如果時間片取值太小,將導致大多數進程/線程都不可能在一個時間片內運行完畢,就會頻繁切換,開銷顯著增大,所以從系統效率來講,時間片應該大些好;如果時間片長度較大,那么隨着就緒隊列中進程/線程數目的增加,輪轉一次所耗費的總時間加長,即對每個進程/線程的響應速度 放慢,甚至時間片大到讓進程/線程足以完成其所有任務,時間片調度算法便退化為FCFS算法。為了滿足用戶對響應時間的要求,要么限制就緒隊列中進程/線程的數量,要么采用變化的時間片長度,根據當前負載情況及時調整時間片大小。

    3、最高優先級算法(HPF):進程調度每次將處理機分配給具有最高優先級的就緒進程。最高優先級算法可與不同的CPU方式結合形成可搶占式最高優先級算法和不可搶占式最高優先級算法。

    4、多級隊列反饋法:幾種調度算法的結合形式多級隊列方式。

三、空閑分區分配算法

    1、首先適應算法:當接到內存申請時,查找分區說明表,找到第一個滿足申請長度的空閑區,將其分割並分配。此算法簡單,可以快速做出分配決定。

    2、最佳適應算法:當接到內存申請時,查找分區說明表,找到第一個能滿足申請長度的最小空閑區,將其進行分割並分配。此算法最節約空間,因為它盡量不分割到大的空閑區,其缺點是可能會形成很多很小的空閑分區,稱為“碎片”。

    3、最壞適應算法:當接到內存申請時,查找分區說明表,找到能滿足申請要求的最大的空閑區。該算法的優點是避免形成碎片,而缺點是分割了大的空閑區后,在遇到較大的程序申請內存時,無法滿足的可能性較大。

四、虛擬頁式存儲管理中的頁面置換算法

    1、理想頁面置換算法(OPT):這是一種理想的算法,在實際中不可能實現。該算法的思想是:發生缺頁時,選擇以后永不使用或在最長時間內不再被訪問的內存頁面予以淘汰。

    2、先進先出頁面置換算法(FIFO):選擇最先進入內存的頁面予以淘汰。

    3、最近最久未使用算法(LRU):選擇在最近一段時間內最久沒有使用過的頁,把它淘汰。

    4、最少使用算法(LFU):選擇到當前時間為止被訪問次數最少的頁轉換。

五、磁盤調度算法

    1、先來先服務(FCFS)。

    2、最短尋道時間優先(SSTF):讓離當前磁道最近的請求訪問者啟動磁盤驅動器,即是讓查找時間最短的那個作業先執行,而不考慮請求訪問者到來的先后次序,這樣就克服了先來先服務調度算法中磁臂移動過大的問題。

    3、掃描算法(SCAN)或電梯調度算法:總是從磁臂當前位置開始,沿磁臂的移動方向去選擇離當前磁臂最近的那個柱面的訪問者。如果沿磁臂的方向無請求訪問時,就改變磁臂的移動方向。在這種調度方法下磁臂的移動類似於電梯的調度,所以它也稱為電梯調度算法。

   4、循環掃描算法(CSCAN):循環掃描調度算法是在掃描算法的基礎上改進的。磁臂改為單項移動,由外向里。當前位置開始沿磁臂的移動方向去選擇離當前磁臂最近的哪個柱面的訪問者。如果沿磁臂的方向無請求訪問時,再回到最外,訪問柱面號最小的作業請求。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM