1. 程式人生 > >基於JAVA的磁碟排程演算法

基於JAVA的磁碟排程演算法

在作業系統課上的一點小感想,基於JAVA的磁碟排程演算法,分享出來和大家一起學習。

  1. 先來先服務(FCFS)演算法。即先來的請求先被響應。FCFS策略為我們建立起一個隨機訪問機制的模型,但是假如用這個策略反覆響應從裡到外的請求,那麼將會消耗大量的時間。FCFS也被看作是最簡單的磁碟排程演算法。
  2. 最短尋道時間優先(SSTF)演算法。要求訪問的磁軌,與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短。
  3. 掃描排程(SCAN)演算法。該演算法不僅考慮到欲訪問的磁軌與當前磁軌間的距離,更優先考慮的是磁頭當前的移動方向。例如,當磁頭正在自裡向外移動時,SCAN演算法所考慮的下一個訪問物件,應是其欲訪問的磁軌,既在當前磁軌之外,又是距離最近的。這樣自裡向外的訪問,直至再無更外的磁軌需要訪問時,才將磁軌換向自外向裡移動。這時,同樣也是每次選擇這樣的程序來排程,也就是要訪問的當前位置內距離最近者,這樣,磁頭又逐步地從外向裡移動,直至再無更裡面的磁軌要訪問,從而避免了出現“飢餓”現像。
  4. 迴圈掃描(C-SCAN)演算法。當磁頭剛從裡向外移動而越過了某一磁軌時,恰好又有一程序請求訪問此磁軌,這時,該里程就必須等待,為了減少這種延遲,CSCAN演算法規定磁頭單向移動,而本實驗過程中我們所設計的是磁頭從裡向外移動,而從外向裡移動時只須改方向而已,本實驗未實現。但本實驗已完全能演示迴圈掃描的全過程。

 

詳細程式碼和文件在這裡 https://write-bug.com/article/1362.html