操作系統(tǒng)——移動臂調(diào)算法的實現(xiàn)_第1頁
操作系統(tǒng)——移動臂調(diào)算法的實現(xiàn)_第2頁
操作系統(tǒng)——移動臂調(diào)算法的實現(xiàn)_第3頁
操作系統(tǒng)——移動臂調(diào)算法的實現(xiàn)_第4頁
操作系統(tǒng)——移動臂調(diào)算法的實現(xiàn)_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、南京工程學院上機實 驗 報 告 課 程 名 稱: 操作系統(tǒng) 實驗項目名稱: 移動臂調(diào)度算法的實現(xiàn) 學生班級: 學生學號: 學生姓名: 指導教師: 實 驗 時 間: 實 驗 地 點: 信息樓專業(yè)機房 實驗成績評定: 2016-2017-1學期一、實驗目的及內(nèi)容掌握操作系統(tǒng)的設備管理功能,熟悉移動臂調(diào)度算法,設計恰當?shù)臄?shù)據(jù)結(jié)構(gòu)和算法,模擬實現(xiàn)移動臂調(diào)度算法。要求至少模擬實現(xiàn)一種磁盤移臂調(diào)度算法。二、實驗相關知識簡介磁盤移臂調(diào)度的目標就是要使磁盤訪問的總時間中的尋找時間最小。因此,磁盤移臂調(diào)度要盡量減少磁盤移動臂移動的距離。磁盤移臂調(diào)度算法很多,常用的也有好幾種,一個好的磁盤調(diào)度算法,不僅要使磁盤尋

2、找時間最小,同時,還要避免移動臂頻繁地改變移動方向,因為頻繁的改向不僅使時間增加,還容易損耗機械部件。常用的磁盤移臂調(diào)度算法有:先來先服務、最短尋找時間優(yōu)先、單向掃描、雙向掃描調(diào)度算法等。 三、解決問題思路及關鍵程序代碼分析(一) 最短尋找時間優(yōu)先調(diào)度算法簡介最短尋找時間調(diào)度算法總是使尋找時間最短的請求最先得到服務,跟請求者的請求時間先后順序無關。這種算法具有比先來先服務更好的性能。但是該算法可能會出現(xiàn)請求者被“餓死”的情況,當靠近磁頭的請求源源不斷地到來,這會使早來的但離磁頭較遠的請求長時間得不到服務。該算法的優(yōu)點是可以得到較短的平均響應時間,有較好的吞吐量。該算法的缺點是缺乏公平性,對中間

3、磁道的訪問比較“照顧”,對兩端磁道訪問比較“疏遠”,相應時間的變化幅度較大。該算法與先來先服務算法一樣,都會導致移動臂頻繁改向。(二) 算法模擬1. 對算法設計進行說明該算法的實現(xiàn)中,主要是選擇調(diào)度處理的磁道是與當前磁頭所在磁道距離最近的磁道,以使每次的尋道時間最短。當選擇了某個離當前磁頭所在磁道最近的磁道,下一輪的當前磁道便改成了上一輪的最近磁道,并且把這個最近的磁道從請求序列取消,直到請求序列中不再有請求的磁道。2. 關鍵代碼分析 import java.io.*;import java.util.*;public class private static int maxsize = 10

4、0;private static int Disc = new intmaxsize; /請求序列private static int count;/要訪問的磁道數(shù)private static int disc; /當前磁道號private static int perTime;/移過每個柱面需要時間private static int Distance=0;/總尋道長度private static int FindTime;/查找時間private static double AvgDistance;/平均尋道長度 public Suanfa(int disc,int count,int p

5、erTime,int Disc)this.disc=disc;this.count=count;this.perTime=perTime;for(int i=0;i<Disc.length;i+)Disci=Disci;public void input() System.out.print("請輸入當前磁道號:");Scanner s1=new Scanner(System.in); disc=s1.nextInt();System.out.print("請輸入要訪問的磁道數(shù):");Scanner s2=new Scanner(System.in

6、); count=s2.nextInt();System.out.print("請輸入移過每個柱面需要的時間:");Scanner s3=new Scanner(System.in); perTime=s3.nextInt();System.out.print("請輸入磁盤請求序列(以空格隔開):"); Scanner s4=new Scanner(System.in);for(int i=0;i<count;i+)Disci=s4.nextInt();public void Delete(int arr,int n)for(int i=n;i&l

7、t;arr.length-1;i+)arri=arri+1;public void running() int j=0,count1=count;int min;int discc=disc;int Discc=new intcount;while(j<count)int num=0;min=(Disc0>=discc)?(Disc0-discc):(discc-Disc0); for(int i=0;i<count1;i+) if(Disci>=discc)&&(Disci-discc<min)|(Disci<discc)&&

8、;(discc-Disci<min) min=(Disci>=discc)?(Disci-discc):(discc-Disci); num=i; Disccj+=Discnum; Distance+=min; discc=Discnum; Delete(Disc,num); count1-;AvgDistance=(double)Distance/count;FindTime=perTime*Distance;System.out.print("n服務序列:"+disc+" ");for(int i=0;i<count;i+)Syst

9、em.out.print(Discci+" ");System.out.println("n總尋道長度:"+Distance);System.out.println("平均尋道長度:"+AvgDistance);System.out.println("尋道時間:"+FindTime+"ms");public static void main(String args)System.out.println("-最短尋找時間優(yōu)先算法-");Suanfa Suanfa=new Suanfa(disc,count,perTime,Disc);Suanfa.input();Suanfa.running();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論