操作系統(tǒng)實(shí)驗(yàn)三-磁盤(pán)調(diào)度算法的實(shí)現(xiàn).doc_第1頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-磁盤(pán)調(diào)度算法的實(shí)現(xiàn).doc_第2頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-磁盤(pán)調(diào)度算法的實(shí)現(xiàn).doc_第3頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-磁盤(pán)調(diào)度算法的實(shí)現(xiàn).doc_第4頁(yè)
操作系統(tǒng)實(shí)驗(yàn)三-磁盤(pán)調(diào)度算法的實(shí)現(xiàn).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余5頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)與通信工程學(xué)院天津理工大學(xué)計(jì)算機(jī)與通信工程學(xué)院實(shí)驗(yàn)報(bào)告2013 至 2014 學(xué)年 第 一 學(xué)期課程名稱操作系統(tǒng)學(xué)號(hào) 學(xué)生姓名 年級(jí) 專業(yè) 教學(xué)班號(hào) 實(shí)驗(yàn)地點(diǎn) 實(shí)驗(yàn)時(shí)間 2013年 月 日 第 節(jié) 至 月 日 第 節(jié)主講教師 輔導(dǎo)教師 實(shí)驗(yàn)( 三 )實(shí)驗(yàn)名稱磁盤(pán)調(diào)度算法的實(shí)現(xiàn)軟件環(huán)境VC+6.0硬件環(huán)境PC機(jī)實(shí)驗(yàn)?zāi)康牟僮飨到y(tǒng)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)和信息與計(jì)算科學(xué)專業(yè)本科教學(xué)計(jì)劃中的一門(mén)重要的專業(yè)基礎(chǔ)課程,是對(duì)計(jì)算機(jī)系統(tǒng)硬軟件資源進(jìn)行管理的系統(tǒng)軟件,是計(jì)算機(jī)系統(tǒng)的管理和指揮中心。通過(guò)本課程實(shí)驗(yàn),使學(xué)生綜合運(yùn)用程序設(shè)計(jì)基礎(chǔ)與語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)原理與接口等先行課程的知識(shí)以及操作系統(tǒng)課程的知識(shí)在各種資源管理調(diào)度策略下,設(shè)計(jì)操作系統(tǒng)資源管理的模擬程序,使學(xué)生加深了解操作系統(tǒng)的工作機(jī)理,對(duì)操作系統(tǒng)的功能及結(jié)構(gòu)設(shè)計(jì)有更加深入的實(shí)踐,為開(kāi)發(fā)系統(tǒng)軟件和應(yīng)用軟件打下基礎(chǔ)。實(shí)驗(yàn)內(nèi)容(應(yīng)包括實(shí)驗(yàn)題目、實(shí)驗(yàn)要求、實(shí)驗(yàn)任務(wù)等)實(shí)驗(yàn)內(nèi)容:1、本實(shí)驗(yàn)是模擬操作系統(tǒng)的磁盤(pán)尋道方式,運(yùn)用磁盤(pán)訪問(wèn)順序的不同來(lái)設(shè)計(jì)磁盤(pán)的調(diào)度算法。2、實(shí)現(xiàn)的磁盤(pán)調(diào)度算法有FCFS,SSTF,SCAN,CSCAN和 NStepSCAN算法。3、設(shè)定開(kāi)始磁道號(hào)尋道范圍,依據(jù)起始掃描磁道號(hào)和最大磁道號(hào)數(shù),隨機(jī)產(chǎn)生要進(jìn)行尋道的磁道號(hào)序列。4、選擇磁盤(pán)調(diào)度算法,顯示該算法的磁道訪問(wèn)順序,計(jì)算出移動(dòng)的磁道總數(shù)和平均尋道總數(shù)。5、按算法的尋道效率進(jìn)行排序,并對(duì)各算法的性能進(jìn)行分析比較。實(shí)驗(yàn)要求:學(xué)生應(yīng)正確地設(shè)計(jì)有關(guān)的數(shù)據(jù)結(jié)構(gòu)與各個(gè)功能模塊,畫(huà)出程序的流程圖,編寫(xiě)程序,程序執(zhí)行結(jié)果應(yīng)正確實(shí)驗(yàn)過(guò)程與實(shí)驗(yàn)結(jié)果(可包括實(shí)驗(yàn)實(shí)施的步驟、算法描述、流程、結(jié)論等)在VC+6.0編寫(xiě)如下代碼#include#includeusing namespace std;void FCFS(int a,int n);void SSTF(int a,int n);void SCAN(int a,int n);void CSCAN(int a,int n);int main() int n;/磁道的個(gè)數(shù) int s;/功能號(hào) cout請(qǐng)輸入磁道的個(gè)數(shù):n; int *a=new intn; cout生成隨機(jī)磁道號(hào).endl; srand(unsigned)time(NULL); for(int i=0;in;i+) ai=(rand()%100)+1; coutai ; coutendl; while(1) coutendl; cout1、先來(lái)先服務(wù)算法(FCFS)endl; cout2、最短尋道時(shí)間算法(SSTF)endl; cout3、掃描算法(SCAN)endl; cout4、循環(huán)掃描算法(CSCAN)endl; cout0、退出endl; coutendl; couts; if(s4)cout輸入有誤!endl; else switch(s) case 0: exit(0);break ; case 1:FCFS(a,n); break; case 2:SSTF(a, n);break; case 3:SCAN(a, n);break; case 4:CSCAN(a,n);break; return 0; /先來(lái)先服務(wù)調(diào)度算法(FCFS)void FCFS(int a,int n)int sum=0,j,i,first=0,now;coutnow;/確定當(dāng)前磁頭所在位置cout磁盤(pán)調(diào)度順序?yàn)椋篹ndl;for( i=0;in;i+)/按訪問(wèn)順序輸出磁道號(hào)coutai ;/計(jì)算sumfor(i=0,j=1;jn;i+,j+) first+=abs(aj-ai);/外圍磁道與最里面磁道的距離 sum+=first+abs(now-a0);coutendl;cout移動(dòng)的總磁道數(shù): sumendl;/最短尋道時(shí)間算法(SSTF)void SSTF(int a,int n)int temp;int k=1;int now,l,r;int i,j,sum=0;/將磁道號(hào)按遞增排序for(i=0;in;i+)for(j=i+1;jaj) temp=ai; ai=aj; aj=temp; cout按遞增順序排好的磁道:endl;for( i=0;in;i+)coutai ;/輸出排好的磁道順序coutendl;coutnow;/確定當(dāng)前磁頭所在位置cout磁盤(pán)調(diào)度順序?yàn)椋篹ndl;if(an-1=0;i-) coutai=now)/當(dāng)前磁頭位置小于最里欲訪問(wèn)磁道 for(i=0;in;i+) coutai ; sum=an-1-now; else while(ak=0)&(rn) if(now-al)=(ar-now)/選擇離磁頭近的磁道 coutal ; sum+=now-al; now=al; l=l-1; else coutar ; sum+=ar-now; now=ar; r=r+1; if(l=-1)/磁頭位置里側(cè)的磁道已訪問(wèn)完 for(j=r;jn;j+)/訪問(wèn)磁頭位置外側(cè)的磁道 coutaj-1;j-) /訪問(wèn)磁頭位置里側(cè)的磁道 coutaj ; sum+=an-1-a0; coutendl; cout移動(dòng)的總道數(shù):sumendl;/掃描算法(SCAN)void SCAN(int a,int n)int temp;int k=1;int now,l,r;int i,j,sum=0;for(i=0;in;i+)/對(duì)訪問(wèn)磁道按由小到大順序排列輸出 for(j=i+1;jaj) temp=ai; ai=aj; aj=temp; cout按遞增順序排好的磁道:endl;for( i=0;in;i+)coutai ;coutendl;coutnow;/以下算法確定磁道訪問(wèn)順序 if(an-1=0;i-) coutai=now) /磁頭位置小于最里欲訪問(wèn)磁道 for(i=0;in;i+) coutai ; sum=an-1-now; else /磁頭位置在最里側(cè)磁道與最外側(cè)磁道之間 int d; while(aknow) /確定當(dāng)前磁道在已排的序列中的位置 k+; l=k-1;/在磁頭位置的前一個(gè)欲訪問(wèn)磁道 r=k; /磁頭欲訪問(wèn)磁道 coutd; /確定磁頭訪問(wèn)的方向 cout=0;j-) coutaj ; for(j=r;jn;j+) coutaj ; sum=now-2*a0+an-1; if(d=1) /磁頭向外 for(j=r;jn;j+) coutaj=0;j-) coutaj ; sum=2*an-1-now-a0; elsecout請(qǐng)輸入0或1!endl; coutendl; cout移動(dòng)的總道數(shù): sumendl;/循環(huán)掃描算法(CSCAN)void CSCAN(int a,int n)int temp;int now,l,r;int i,j,sum=0;int k=1;for(i=0;in;i+)/對(duì)訪問(wèn)磁道按由小到大順序排列輸出 for(j=i+1;jaj) temp=ai; ai=aj; aj=temp; cout按遞增順序排好的磁道:endl; for( i=0;in;i+) coutai ; coutendl;coutnow;/確定當(dāng)前磁道號(hào)if(an-1=now)/磁頭位置大于最外圍欲訪問(wèn)磁道 for(i=0;in;i+) coutai=now)/磁頭位置小于最里欲訪問(wèn)磁道 for(i=0;in;i+) coutai ; sum=an-1-now; else /磁頭位置在最里側(cè)磁道與最外側(cè)磁道之間 int d; while(aknow) k+; l=k-1;/在磁頭位置的前一個(gè)欲訪問(wèn)磁道 r=k; /磁頭欲訪問(wèn)磁道 coutd; /確定磁頭訪問(wèn)的方向 cout磁盤(pán)調(diào)度順序?yàn)椋? if(d=0|d=1) if(d=1) /磁頭向外側(cè)訪問(wèn) for(j=r;jn;j+)/先訪問(wèn)外側(cè)磁道再轉(zhuǎn)向最里欲訪問(wèn)磁道 coutaj ; for(j=0;jr;j+) coutaj=0;j-) coutaj=r;j-)/ coutaj ; sum=2*an-1-2*a0+now-ar; else cou

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論