作業系統期末複習——四大演算法

席潤發表於2019-02-15

這是之前期末複習的小總結。

程式排程演算法:

週轉時間=完成時間-到達時間

帶權週轉時間=週轉時間/服務時間

假設第一個到達的程式的到達時間為0

時間片輪轉排程RR:

在一個時間軸(以時間片q為單位長度)上,若現在只有A程式在執行,則在下一個程式B到達前,每一個單位刻度之接都填上A,下一個程式B到達時間的刻度填上B。之後則是AB依次填上,若下一個程式C到達時間在AB之間,則先繼續填上AB,再接著填上C,之後則是ABC依次填上,以此類推,字母A、B、C等的出現次數為服務時間/時間片q,即程式完成後就去掉。

先來先服務排程FCFS:

第一個程式 完成時間=服務時間+0

其後的程式 完成時間=上一個程式的完成時間+該程式的服務時間

短作業優先排程SJF:

從就緒佇列中選出一個估計執行時間最短的程式先執行

第一個到達程式先執行,其完成時間=服務時間+0

之後在就緒佇列中選擇服務時間小的先執行,

其完成時間=上一個程式完成時間+該程式服務時間

如此繼續直到完成所有程式。

響應比高者優先排程HRP:

響應比Rp=等待時間+要求服務時間/要求服務時間=響應時間/要求服務時間

優先權=(等待時間+要求服務時間)/要求服務時間

先執行第一個程式,其完成時間=服務時間+0,之後在就緒佇列中先執行響應比高者,每執行一個程式,都需要求出其就緒佇列中其他程式的響應比,選擇,響應比高者先執行(等待時間=上一個程式完成時間-到達時間)

其完成時間=上一個程式完成時間+該程式服務時間

銀行家演算法:

需求資源Need=最大資源需求Max-當前已分配到的資源Allocation

系統當前可用資源Available

P_i請求資源Request

先檢查:

Request<=Need_i

Request<=Available_i

若以上兩式成立,則改變相應資料結構,即Allocation_i=Allocation_i+Request

再利用安全性演算法檢查系統是否安全 其中系統當前可用資源Work=釋放的分配資源Allocation+Work Work>=Need,則Finish=true。

頁面置換演算法:

Optimal替換演算法(即最佳置換演算法):

每次替換未來最長時間內不再被訪問的頁面

FIFO替換演算法(即先進先出頁面置換演算法):

每次替換出現最久的頁面

LRU替換演算法(即最近最久未使用置換演算法):

每次替換自上次被訪問以來所經歷的時間t最大的頁面

磁碟排程演算法:

先來先服務(FCFS,First Come First Served):

按請求磁軌號序列依次訪問

最短尋道時間優先(SSTF,Shortest Seek Time First):

每次訪問距離最近的磁軌號

掃描演算法SCAN:

按指定方向訪問距離最近的磁軌號,直至該方向再無磁軌要訪問,調轉方向,再次訪問距離最近的磁軌號

迴圈掃描演算法CSCAN:

按指定方向訪問距離最近的的磁軌號,直至該方向再無磁軌要訪問,再從最小的磁軌號開始,依次訪問距離最近的磁軌號

相關文章