天津理工大學(xué)操作系統(tǒng)試驗(yàn)3:磁盤調(diào)度算法地實(shí)現(xiàn)_第1頁
天津理工大學(xué)操作系統(tǒng)試驗(yàn)3:磁盤調(diào)度算法地實(shí)現(xiàn)_第2頁
天津理工大學(xué)操作系統(tǒng)試驗(yàn)3:磁盤調(diào)度算法地實(shí)現(xiàn)_第3頁
天津理工大學(xué)操作系統(tǒng)試驗(yàn)3:磁盤調(diào)度算法地實(shí)現(xiàn)_第4頁
天津理工大學(xué)操作系統(tǒng)試驗(yàn)3:磁盤調(diào)度算法地實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)用標(biāo)準(zhǔn)人津城,大殍實(shí)驗(yàn)報(bào)告學(xué)院(系)名稱: 計(jì)算機(jī)與通信工程學(xué)院姓名王遠(yuǎn)志學(xué)號(hào)20135632專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)2013級(jí)3班實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)二:磁盤調(diào)度算法的實(shí)現(xiàn)課程名稱操作系統(tǒng)課程代碼0668036實(shí)驗(yàn)時(shí)間2015年12月11日 第5-8節(jié)實(shí)驗(yàn)地點(diǎn)軟件實(shí)驗(yàn)室7-219批改意見成績教師簽字:實(shí)驗(yàn)內(nèi)容:1 .本實(shí)驗(yàn)是模擬操作系統(tǒng)的磁盤尋道方式,運(yùn)用磁盤訪問順序的不向來設(shè)計(jì)磁盤的調(diào)度算法。2 .實(shí)現(xiàn)的磁盤調(diào)度算法有 FCFS SSTF, SCAN CSCAtf口 NStepSCAN算法。3 .設(shè)定開始磁道號(hào)尋道范圍,依據(jù)起始掃描磁道號(hào)和最大磁道號(hào)數(shù),隨機(jī)產(chǎn)生要進(jìn)行尋道的磁道號(hào)序 列。4 .選

2、擇磁盤調(diào)度算法,顯示該算法的磁道訪問順序,計(jì)算出移動(dòng)的磁道總數(shù)和平均尋道總數(shù)。5 .按算法的尋道效率進(jìn)行排序,并對(duì)各算法的性能進(jìn)行分析比較。實(shí)驗(yàn)要求:1 .詳細(xì)描述實(shí)驗(yàn)設(shè)計(jì)思想、程序結(jié)構(gòu)及各模塊設(shè)計(jì)思路;2 .詳細(xì)描述程序所用數(shù)據(jù)結(jié)構(gòu)及算法;3 .明確給出測(cè)試用例和實(shí)驗(yàn)結(jié)果;4 .為增加程序可讀性,在程序中進(jìn)行適當(dāng)注釋說明;5 .認(rèn)真進(jìn)行實(shí)驗(yàn)總結(jié),包括:設(shè)計(jì)中遇到的問題、解決方法與收獲等;6 .實(shí)驗(yàn)報(bào)告撰寫要求結(jié)構(gòu)清晰、描述準(zhǔn)確邏輯性強(qiáng);7 .實(shí)驗(yàn)過程中,同學(xué)之間可以進(jìn)行討論互相提高,但絕對(duì)禁止抄襲。文案大全實(shí)用標(biāo)準(zhǔn)【實(shí)驗(yàn)過程記錄(源程序、測(cè)試用例、測(cè)試結(jié)果及心得體會(huì)等)】#include&l

3、t;iostream>#include<iomanip>#include<math.h>using namespace std;const int MaxNumber=100; int TrackOrderMaxNumber;int MoveDistanceMaxNumber; /- int FindOrderMaxNumber; / double AverageDistance;/bool direction;/-int BeginNum;/-int M;/int N;/int SortOrderMaxNumber; bool FinishedMaxNumber

4、;void Inith() cout<<"請(qǐng)輸入磁道數(shù): cin>>M;cout<<"請(qǐng)輸入提出磁盤 cin>>N;cout<<"請(qǐng)依次輸入要訪問的磁道號(hào): for(int i=0;i<N;i+)cin>>TrackOrderi;for(int j=0;j<N;j+) MoveDistancej=0;cout<<"請(qǐng)輸入開始磁道號(hào): cin>>BeginNum;for(int k=0;k<N;k+) Finishedk=false;for(i

5、nt l=0;l<N;l+) SortOrderl=TrackOrderl;/-移動(dòng)距離;尋好序列。平均尋道長度方向true 時(shí)為向外,false開始磁道號(hào)。磁道數(shù)。提出磁盤I/O申請(qǐng)的進(jìn)程數(shù)排序后的序列I/O巾請(qǐng)的進(jìn)程數(shù).11.為向里/=排序函數(shù),將各進(jìn)程申請(qǐng)的磁道按從小到大排列 void Sort()/-冒泡排序int temp;for(int i=N-1;i>=0;i-)for(int j=0;j<i;j+)if(SortOrderj>SortOrderj+1)文案大全實(shí)用標(biāo)準(zhǔn)(temp=SortOrderj;SortOrderj=SortOrderj+1;Sor

6、tOrderj+1=temp;) )/=FCFS,先來先服務(wù)= void FCFS() (int temp;temp=BeginNum;/ 將BeginNum賦給temp作為尋道時(shí)的當(dāng)前所在磁道號(hào) for(int i=0;i<N;i+) (MoveDistancei=abs(TrackOrderi-temp); / 計(jì)算移動(dòng)磁道數(shù)temp=TrackOrderi;/ 尋到后,將此道作為當(dāng)前所在磁道號(hào),賦給 temp FindOrderi=TrackOrderi;/尋好的賦給尋好序列) )/=SSTF,最短尋道法= void SSTF() (int temp,n;int A=M;temp=

7、BeginNum;/ 將BeginNum賦給temp作為尋道時(shí)的當(dāng)前所在磁道號(hào) for(int i=0;i<N;i+) ( for(int j=0;j<N;j+)/尋找最短的尋道長度(if(abs(TrackOrderj-temp)<A&&Finishedj=false) ( A=abs(TrackOrderj-temp); n=j;)else continue;)Finishedn=true; / 將已經(jīng)尋找到的 Finished 賦值為 trueMoveDistancei=A; / 尋道長度temp=TrackOrdern; / 當(dāng)前尋道號(hào)。A=M;/-重

8、置 A值文案大全實(shí)用標(biāo)準(zhǔn)FindOrderi=TrackOrdern; /-尋好的賦給尋好序列) )/=SCAN 掃描算法= void SCAN() (int m,n,temp;temp=BeginNum;Sort();/ 排序cout<<"請(qǐng)選擇開始方向:1-向外;0-向里";/ 選擇掃描方向cin>>m; if(m=1) direction=true; else if(m=0)direction=false;elsecout<"輸入錯(cuò)誤"for(int i=0;i<N;i+) (if(SortOrderi<B

9、eginNum) continue; else ( n=i; break; )if(direction=true)/ 選擇向夕卜( for(int i=n;i<N;i+) (MoveDistancei-n=abs(SortOrderi-temp);temp=SortOrderi;FindOrderi-n=SortOrderi;) for(int j=n-1;j>=0;j-) (MoveDistanceN-1-j=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-1-j=SortOrderj;選擇向里) ) else/文案大全實(shí)用標(biāo)準(zhǔn)(f

10、or(int i=n-1;i>=0;i-)(MoveDistanceN-i-4=abs(SortOrderi-temp);temp=SortOrderi;FindOrderN-i-4=SortOrderi;for(int j=n;j<N;j+) (MoveDistancej=abs(SortOrderj-temp);temp=TrackOrderj;FindOrderj=SortOrderj;/=CSCAN 循環(huán)掃描算法= void CSCAN() (int m,n,temp;temp=BeginNum;Sort();cout<<"請(qǐng)選擇開始方向:1-向外;0

11、-向里";cin>>m;if(m=1)direction=true;else if(m=0)direction=false;elsecout<"輸入錯(cuò)誤"for(int i=0;i<N;i+)(if(SortOrderi<BeginNum)continue;else(n=i;break;if(direction=true)(for(int i=n;i<N;i+)文案大全實(shí)用標(biāo)準(zhǔn)(MoveDistancei-n=abs(SortOrderi-temp);temp=SortOrderi;FindOrderi-n=SortOrderi

12、;for(int j=0;j<n;j+)(MoveDistanceN-n+j=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-n+j=SortOrderj;else(for(int i=n-1;i>=0;i-)(MoveDistancen-1-i=abs(SortOrderi-temp);temp=SortOrderi;FindOrdern-1-i=SortOrderi;for(int j=N-1;j>=n;j-)(MoveDistanceN-j+n-1=abs(SortOrderj-temp);temp=SortOrderj;

13、FindOrderN-j+n-1=SortOrderj;/=計(jì)算平均尋道時(shí)間=void Count()(int Total=0;for(int i=0;i<N;i+)(Total+=MoveDistancei;AverageDistance=(double)Total)/(double)N);void Show()(cout<<"=從"<<BeginNum<<”號(hào)磁道開始="<<endl; cout<<setw(20)<<" 被訪問的下一個(gè)磁道號(hào) "<<s

14、etw(20)<<"移動(dòng)距離(磁道數(shù))"<<endl;for(int i=0;i<N;i+)文案大全實(shí)用標(biāo)準(zhǔn)cout<<setw(15)<<FindOrderi<<setw(15)<<MoveDistancei<<endl;cout<<setw(20)<<"平均尋道長度:"<<AverageDistance<<endl;cout<<endl;int main()int y=1;int s;Inith();w

15、hile(y)cout<<”請(qǐng)選擇尋道方式:1-FCFS; 2-SSTF; 3-SCAN;4-CSCSN;"cin>>s;switch(s)case 1:FCFS();Count();Show();break;case 2:SSTF();Count();Show();break;case 3:SCAN();Count();Show();break;case 4:CSCAN();Count();Show();break;cout<<"是否繼續(xù)選擇尋道算法?1-是;2-否";int P;cin>>p;y=p;return 0;實(shí)驗(yàn)結(jié)果:FCFS方式:文案大全實(shí)用標(biāo)準(zhǔn)Sstf方式:是否繼續(xù)選擇尋道算法? 1是,2一否1請(qǐng)選擇尋道方式: 1FCFS: 2SSTF; 3SCAN; 4CSCSN; 2=從期4道開始=噱訪問的下一個(gè)磁道號(hào)移動(dòng)距離(磁道數(shù))326275276276276276平均尋道長度5 83333SCAIW 式:文案大全實(shí)用標(biāo)準(zhǔn)!' CiU5er5SoldierDocunnent5deve>ce1FCFS; 2SSTF;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論