操作系統(tǒng)課程設(shè)計(jì)報(bào)告-磁盤調(diào)度先來先服務(wù)算法_第1頁
操作系統(tǒng)課程設(shè)計(jì)報(bào)告-磁盤調(diào)度先來先服務(wù)算法_第2頁
操作系統(tǒng)課程設(shè)計(jì)報(bào)告-磁盤調(diào)度先來先服務(wù)算法_第3頁
操作系統(tǒng)課程設(shè)計(jì)報(bào)告-磁盤調(diào)度先來先服務(wù)算法_第4頁
操作系統(tǒng)課程設(shè)計(jì)報(bào)告-磁盤調(diào)度先來先服務(wù)算法_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z.《操作系統(tǒng)原理》課程設(shè)計(jì)報(bào)告書題目:磁盤調(diào)度先來先服務(wù)算法學(xué)號(hào):學(xué)生**:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師:2014年5月29目錄84591功能描述1213741.1功能實(shí)現(xiàn)思想1208121.2功能詳述1164172系統(tǒng)設(shè)計(jì)19862.1系統(tǒng)總體設(shè)計(jì)279592.1.1數(shù)據(jù)結(jié)構(gòu)描述192042.1.2函數(shù)功能分析1138092.1.2程序函數(shù)調(diào)用關(guān)系2290062.2系統(tǒng)詳細(xì)設(shè)計(jì)2285252.2.1設(shè)計(jì)任務(wù)261092.2.2設(shè)計(jì)要求2235072.2.3算法思想299962.2.4FCFS算法流程圖3146023系統(tǒng)實(shí)現(xiàn)319514系統(tǒng)測(cè)試與分析4184664.1系統(tǒng)運(yùn)行結(jié)果4192634.2系統(tǒng)運(yùn)行結(jié)果分析4224405總結(jié)51564參考文獻(xiàn)5230附:源程序代碼614985教師評(píng)分表91功能描述根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度,從而計(jì)算出磁頭移動(dòng)的總距離和平均尋道長(zhǎng)度。1.1功能實(shí)現(xiàn)思想這是一種比較簡(jiǎn)單的磁盤調(diào)度算法。它根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。此算法的優(yōu)點(diǎn)是公平、簡(jiǎn)單,且每個(gè)進(jìn)程的請(qǐng)求都能依次得到處理,不會(huì)出現(xiàn)*一進(jìn)程的請(qǐng)求長(zhǎng)期得不到滿足的情況。此算法由于未對(duì)尋道進(jìn)行優(yōu)化,在對(duì)磁盤的訪問請(qǐng)求比較多的情況下,此算法將降低設(shè)備服務(wù)的吞吐量,致使平均尋道時(shí)間可能較長(zhǎng),但各進(jìn)程得到服務(wù)的響應(yīng)時(shí)間的變化幅度較小。1.2功能詳述根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度,首先根據(jù)提示輸入總的磁道數(shù)、提出磁盤I/O申請(qǐng)的進(jìn)程數(shù)、開始磁道號(hào)和磁道序列。通過程序調(diào)用函數(shù)輸出磁盤請(qǐng)求序列和磁盤掃描序列,從而計(jì)算出磁頭移動(dòng)的總距離和平均尋道長(zhǎng)度。2系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總體設(shè)計(jì)2.1.1數(shù)據(jù)結(jié)構(gòu)描述voidFCFS(intcidao[],intm)輸入磁道號(hào),按先來先服務(wù)的策略輸出磁盤請(qǐng)求序列和磁盤掃描序列,求移動(dòng)的總距離和平均尋道長(zhǎng)度,輸出移動(dòng)的總磁道數(shù)和平均尋道長(zhǎng)度。2.1.2函數(shù)功能分析由于一開始要對(duì)鍵盤輸入的磁道數(shù)和要使用的算法進(jìn)行一次有效性的判斷,我使用了intdecide(charstr[]),如果輸入的信息不是0~9之間的數(shù)都將被判定為不合法,合法后才能進(jìn)行下一步。判斷完合法性后,要將輸入的字符轉(zhuǎn)化為數(shù)字,這里我用了inttrans(charstr[],inta)。先來先服務(wù)調(diào)度算法我使用了voidFCFS(intcidao[],intm),該算法主要完成按原來鍵盤輸入的次序來尋道,然后輸出移動(dòng)的總磁道數(shù)和平均尋道長(zhǎng)度。2.1.2程序函數(shù)調(diào)用關(guān)系下圖為磁盤調(diào)度算法之先來先服務(wù)的函數(shù)之間的調(diào)用關(guān)系,主函數(shù)調(diào)用子函數(shù),子函數(shù)也可以調(diào)用子函數(shù)。main()main()trans()decide()FCFS()trans()decide()FCFS()圖1程序函數(shù)調(diào)用關(guān)系2.2系統(tǒng)詳細(xì)設(shè)計(jì)2.2.1設(shè)計(jì)任務(wù)本系統(tǒng)采用先來先服務(wù)算法FCFS,來實(shí)現(xiàn)磁盤調(diào)度的模擬。2.2.2設(shè)計(jì)要求根據(jù)磁盤調(diào)度算法的思想,編程實(shí)現(xiàn)求先來先服務(wù)算法的平均尋道長(zhǎng)度。2.2.3算法思想先來先服務(wù)的算法,即先來的請(qǐng)求先被響應(yīng)。FCFS算法看起來是比較合理的算法,但是當(dāng)請(qǐng)求頻率過高的時(shí)候FCFS算法的響應(yīng)時(shí)間就會(huì)大大的延長(zhǎng),這也是最基本的算法,直接實(shí)現(xiàn)的是由輸入的順序來順序的執(zhí)行。2.2.4FCFS算法流程圖開始輸入總的磁道數(shù)開始輸入總的磁道數(shù)輸入提出磁盤I/O申請(qǐng)的進(jìn)程數(shù)輸入提出磁盤I/O申請(qǐng)的進(jìn)程數(shù)輸入磁道序列(以0結(jié)束)輸入磁道序列(以0結(jié)束)輸入開始的磁道號(hào)輸出磁盤請(qǐng)求序列和掃描序列輸出磁盤請(qǐng)求序列和掃描序列求移動(dòng)的總的磁道數(shù)求移動(dòng)的總的磁道數(shù)求平均尋道長(zhǎng)度結(jié)束結(jié)束圖2FCFS算法流程圖3系統(tǒng)實(shí)現(xiàn)1)開發(fā)環(huán)境:Window72)開發(fā)工具和編程語言開發(fā)工具:VisualC++6.0編程語言:C++4系統(tǒng)測(cè)試與分析4.1系統(tǒng)運(yùn)行結(jié)果圖3運(yùn)行結(jié)果4.2系統(tǒng)運(yùn)行結(jié)果分析根據(jù)系統(tǒng)提示進(jìn)行輸入數(shù)據(jù),如輸入的總磁道數(shù)為9,磁盤I/O申請(qǐng)的進(jìn)程數(shù)為9,輸入的磁道系列為555839189016015038184,輸入開始磁道號(hào):100(當(dāng)輸入的數(shù)據(jù)類型有誤是,會(huì)提醒重新輸入),可以得到磁盤請(qǐng)求的序列和掃描的序列都為555839189016015038184,也得到了移動(dòng)的總磁道數(shù)為498和平均尋道長(zhǎng)度為55.3333。實(shí)驗(yàn)結(jié)果符合預(yù)想的結(jié)果。5總結(jié)通過本次課程設(shè)計(jì),我對(duì)磁盤的調(diào)度算法之先來先服務(wù)有了更深的了解,但在本次課程設(shè)計(jì)過程也遇到了一些問題,最后在同學(xué)的幫助下通過各種嘗試,發(fā)現(xiàn)需將字符轉(zhuǎn)化成數(shù)字,這也算是一個(gè)不小的收獲吧??傮w而言,本次課設(shè)讓我學(xué)會(huì)了很多,也讓我對(duì)以前學(xué)過的知識(shí)回顧了很多,本次課程設(shè)計(jì)涉及的算法并不難,都是些基本的算法,所以告訴我們要打好基礎(chǔ),學(xué)好數(shù)據(jù)結(jié)構(gòu)也是很重要的。還有就是讓我對(duì)操作系統(tǒng)的基礎(chǔ)知識(shí)了解得更透徹了。我深刻認(rèn)識(shí)到算法的邏輯性對(duì)程序的重要影響,算法的準(zhǔn)確度對(duì)程序運(yùn)行結(jié)果的重要影響,這對(duì)我以后在操作系統(tǒng)的學(xué)習(xí)中有極大幫助。參考文獻(xiàn)【1】湯小丹湯子瀛《計(jì)算機(jī)操作系統(tǒng)》(第三版)**電子科技大學(xué)【2】付永華王素立薛海燕《C++高級(jí)語言程序設(shè)計(jì)》中國(guó)電力【3】*海云《計(jì)算機(jī)操作系統(tǒng)原理實(shí)驗(yàn)指導(dǎo)書》中國(guó)電力附:源程序代碼*include<stdio.h>*include<stdlib.h>*include<math.h>*include<iostream>usingnamespacestd;*definema*size100//定義最大數(shù)組域intdecide(charstr[])//判斷輸入數(shù)據(jù)是否有效{inti=0; while(str[i]!='\0') { if(str[i]<'0'||str[i]>'9') { return0; break; } i++; } returni;}inttrans(charstr[],inta)//將字符串轉(zhuǎn)換成數(shù)字{ inti; intsum=0; for(i=0;i<a;i++) { sum=sum+(int)((str[i]-'0')*pow(10,a-i-1)); } returnsum;}voidFCFS(intcidao[],intm)//磁道號(hào)數(shù)組,個(gè)數(shù)為m{intbeginnumber;//開始的磁道號(hào)intsum=0;//總尋道長(zhǎng)度intj,i; inta;//字符串個(gè)數(shù) charstr[100];floatave;//平均尋道長(zhǎng)度 B:cout<<"請(qǐng)輸入開始的磁道號(hào):";cin>>str;//對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0) { cout<<"輸入數(shù)據(jù)的類型錯(cuò)誤,請(qǐng)重新輸入!"<<endl; gotoB;//輸入錯(cuò)誤,跳轉(zhuǎn)到B,重新輸入 }else beginnumber=trans(str,a);//輸入開始的磁道號(hào)sum+=abs(cidao[0]-beginnumber); cout<<"磁盤請(qǐng)求序列為:";for(i=0;i<m;i++)//按先來先服務(wù)的策略輸出磁盤請(qǐng)求序列{cout<<cidao[i]<<"";} cout<<endl; cout<<"磁盤掃描序列為:";for(i=0;i<m;i++)//輸出磁盤掃描序列{cout<<cidao[i]<<"";}for(i=0,j=1;j<m;i++,j++)//求平均尋道長(zhǎng)度{sum+=abs(cidao[j]-cidao[i]);ave=(float)(sum)/(float)(m);}cout<<endl; cout<<"移動(dòng)的總磁道數(shù)為:"<<sum<<endl;cout<<"平均尋道長(zhǎng)度:"<<ave<<endl;}voidmain(){cout<<""<<endl;cout<<"計(jì)算機(jī)科學(xué)與技術(shù)"<<endl;cout<<"111006333"<<endl;cout<<"*愿麗"<<endl;cout<<""<<endl;inta; intcidao[ma*size];inti=0,number;intn;cout<<"請(qǐng)輸入總磁道數(shù):";cin>>n;cout<<endl;intm;cout<<"請(qǐng)輸入提出磁盤I/O申請(qǐng)的進(jìn)程數(shù):";cin>>m;cout<<endl;charstr[100];A:cout<<"請(qǐng)輸入磁道序列(0結(jié)束):"<<endl;cin>>str;//對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0){ cout<<"輸入數(shù)據(jù)的類型錯(cuò)誤,請(qǐng)重新輸入!"<<endl; gotoA;//輸入錯(cuò)誤,跳轉(zhuǎn)到A,重新輸入} else cidao[i]=trans(str,a);i++;while(cidao[i-1]!=0){ cin>>str;//對(duì)輸入數(shù)據(jù)進(jìn)行有效性判斷a=decide(str);if(a==0) cout<<"輸入數(shù)據(jù)的類型錯(cuò)誤,請(qǐng)重新輸入!"<<endl;else { cidao[i]=trans(str,a);i++; }}number=i-1;//要訪問的磁道數(shù)cout<<"您輸入的磁道序列為:";for(i=0;i<number;i++){cout<<cidao[i]<<"";//輸出磁道序列}cout<<endl;FCF

溫馨提示

  • 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)論