作業系統常用的排程演算法總結
1 常見的批處理作業排程演算法
1.1 先來先服務排程演算法(FCFS):
就是按照各個作業進入系統的自然次序來排程作業。這種排程演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的使用者不滿意,因為短作業等待處理的時間可能比實際執行時間長得多。
1.2 短作業優先排程演算法(SPF):
就是優先排程並處理短作業,所謂短是指作業的執行時間短。而在作業未投入執行時,並不能知道它實際的執行時間的長短,因此需要使用者在提交作業時同時提交作業執行時間的估計值。
1.3 最高響應比優先演算法(HRN):
FCFS可能造成短作業使用者不滿,SPF可能使得長作業使用者不滿,於是提出HRN,選擇響應比最高的作業執行。響應比=1+作業等待時間/作業處理時間。
1.4 基於優先數排程演算法(HPF):
每一個作業規定一個表示該作業優先順序別的整數,當需要將新的作業由輸入井調入記憶體處理時,優先選擇優先數最高的作業。
1.5 均衡排程演算法:
多級佇列排程演算法,基本概念:
作業週轉時間(Ti)=完成時間(Tei)-提交時間(Tsi);
作業平均週轉時間(T)=週轉時間/作業個數;
作業帶權週轉時間(Wi)=週轉時間/執行時間;
響應比=(等待時間+執行時間)/執行時間。
2 程式排程演算法
2.1 先進先出演算法(FIFO):
按照程式進入就緒佇列的先後次序來選擇。即每當進入程式排程,總是把就緒佇列的隊首程式投入執行。
2.2 時間片輪轉演算法(RR):
分時系統的一種排程演算法。輪轉的基本思想是,將CPU的處理時間劃分成一個個的時間片,就緒佇列中的程式輪流執行一個時間片。當時間片結束時,就強迫程式讓出CPU,該程式進入就緒佇列,等待下一次排程,同時,程式排程又去選擇就緒佇列中的一個程式,分配給它一個時間片,以投入執行。
2.3 最高優先順序演算法(HPF):
程式排程每次將處理機分配給具有最高優先順序的就緒程式。最高優先順序演算法可與不同的CPU方式結合形成可搶佔式最高優先順序演算法和不可搶佔式最高優先順序演算法。
2.4 多級佇列反饋法:
幾種排程演算法的結合形式多級佇列方式。
3 空閒分割槽分配演算法
3.1 首先適應演算法:
當接到記憶體申請時,查詢分割槽說明表,找到第一個滿足申請長度的空閒區,將其分割並分配。此演算法簡單,可以快速做出分配決定。
3.2 最佳適應演算法:
當接到記憶體申請時,查詢分割槽說明表,找到第一個能滿足申請長度的最小空閒區,將其進行分割並分配。此演算法最節約空間,因為它儘量不分割到大的空閒區,其缺點是可能會形成很多很小的空閒分割槽,稱為“碎片”。
3.3 最壞適應演算法:
當接到記憶體申請時,查詢分割槽說明表,找到能滿足申請要求的最大的空閒區。該演算法的優點是避免形成碎片,而缺點是分割了大的空閒區後,在遇到較大的程式申請記憶體時,無法滿足的可能性較大。
4 虛擬頁式儲存管理中的頁面置換演算法
4.1 理想頁面置換演算法(OPT):
這是一種理想的演算法,在實際中不可能實現。該演算法的思想是:發生缺頁時,選擇以後永不使用或在最長時間內不再被訪問的記憶體頁面予以淘汰。
4.2 先進先出頁面置換演算法(FIFO):
選擇最先進入記憶體的頁面予以淘汰。
4.3 最近最久未使用演算法(LRU):
選擇在最近一段時間內最久沒有使用過的頁,把它淘汰。
4.4 少使用演算法(LFU):
選擇到當前時間為止被訪問次數最少的頁轉換。
5 磁碟排程
5.1 先來先服務(FCFS):
是按請求訪問者的先後次序啟動磁碟驅動器,而不考慮它們要訪問的物理位置。
5.2 最短尋道時間優先(SSTF):
讓離當前磁軌最近的請求訪問者啟動磁碟驅動器,即是讓查詢時間最短的那個作業先執行,而不考慮請求訪問者到來的先後次序,這樣就克服了先來先服務排程演算法中磁臂移動過大的問題。
5.3 掃描演算法(SCAN)或電梯排程演算法:
總是從磁臂當前位置開始,沿磁臂的移動方向去選擇離當前磁臂最近的那個柱面的訪問者。如果沿磁臂的方向無請求訪問時,就改變磁臂的移動方向。在這種排程方法下磁臂的移動類似於電梯的排程,所以它也稱為電梯排程演算法。
5.4 迴圈掃描演算法(CSCAN):
迴圈掃描排程演算法是在掃描演算法的基礎上改進的。磁臂改為單項移動,由外向裡。當前位置開始沿磁臂的移動方向去選擇離當前磁臂最近的哪個柱面的訪問者。如果沿磁臂的方向無請求訪問時,再回到最外,訪問柱面號最小的作業請求。
相關文章
- 作業系統排程演算法作業系統演算法
- 作業系統之排程演算法作業系統演算法
- 【作業系統】4.程序排程演算法作業系統演算法
- 作業系統常用知識總結!作業系統
- 【作業系統】--處理器排程作業系統
- 作業系統總結作業系統
- 0512作業系統之程式排程作業系統
- 作業系統(Linux)--按優先數排程演算法實現處理器排程作業系統Linux演算法
- 作業系統精髓設計原理 程式排程作業系統
- 作業系統(5)處理器排程管理作業系統
- 0512 作業系統程式排程實驗作業系統
- 【作業系統】磁碟的四種基本排程演算法(圖表說明)作業系統演算法
- 作業系統寫題總結作業系統
- 《作業系統》分析與總結作業系統
- Hadoop作業的三種排程演算法Hadoop演算法
- 作業系統4——處理機排程與死鎖作業系統
- 使用DBMS_SCHEDULER排程作業系統shell指令碼作業系統指令碼
- 作業系統(二):作業系統結構作業系統
- 課程排課系統:智慧排課+線上約課+直播上課+作業打卡!
- 作業系統常見面試題總結作業系統面試題
- 作業系統相關知識總結作業系統
- 【分享篇】常用的八個Linux作業系統彙總!Linux作業系統
- 排程管理大總結
- 作業排程模擬程式
- Hadoop - Azkaban 作業排程Hadoop
- 伺服器常用的作業系統伺服器作業系統
- UNIX作業系統中常用的命令作業系統
- Oracle事件驅動的排程作業Oracle事件
- Android 5.0的排程作業JobSchedulerAndroid
- 作業系統啟動的過程作業系統
- 【乾貨分享】常用的八個Linux作業系統彙總!Linux作業系統
- Quartz.Net 作業排程後臺管理系統,基於ExtjsquartzJS
- 作業系統課程設計——處理機和程式排程演算法及記憶體分配回收機制作業系統演算法記憶體
- 作業系統中排程演算法(FCFS、RR、SPN、SRT、HRRN)作業系統演算法
- 工作總結--工單排程
- 作業系統結構作業系統
- 07 系統排程
- 任務排程的思考和總結