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

下載本文檔

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

文檔簡介

1、 操作系統(tǒng)原理課 程 設(shè) 計 報 告 書題 目: 磁盤調(diào)度先來先服務(wù)算法學(xué) 號: 學(xué)生姓名: 專 業(yè): 計算機科學(xué)與技術(shù) 指導(dǎo)教師: 2014 年 5 月 29目 錄1 功能描述 根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度,從而計算出磁頭移動的總距離和平均尋道長度。 功能實現(xiàn)思想 這是一種比較簡單的磁盤調(diào)度算法。它根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度。此算法的優(yōu)點是公平、簡單,且每個進(jìn)程的請求都能依次得到處理,不會出現(xiàn)某一進(jìn)程的請求長期得不到滿足的情況。此算法由于未對尋道進(jìn)行優(yōu)化,在對磁盤的訪問請求比較多的情況下,此算法將降低設(shè)備服務(wù)的吞吐量,致使平均尋道時間可能較長,但各進(jìn)程得到服務(wù)的響應(yīng)時間

2、的變化幅度較小。 功能詳述 根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度,首先根據(jù)提示輸入總的磁道數(shù)、提出磁盤I/O申請的進(jìn)程數(shù)、開始磁道號和磁道序列。通過程序調(diào)用函數(shù)輸出磁盤請求序列和磁盤掃描序列,從而計算出磁頭移動的總距離和平均尋道長度。2 系統(tǒng)設(shè)計 系統(tǒng)總體設(shè)計 數(shù)據(jù)結(jié)構(gòu)描述void?FCFS(int?cidao,int?m)輸入磁道號,按先來先服務(wù)的策略輸出磁盤請求序列和磁盤掃描序列,求移動的總距離和平均尋道長度,輸出移動的總磁道數(shù)和平均尋道長度。 函數(shù)功能分析 由于一開始要對鍵盤輸入的磁道數(shù)和要使用的算法進(jìn)行一次有效性的判斷,我使用了int?decide(char?str),如果輸入的信息

3、不是09之間的數(shù)都將被判定為不合法,合法后才能進(jìn)行下一步。判斷完合法性后,要將輸入的字符轉(zhuǎn)化為數(shù)字,這里我用了int trans(char str,int a) 。先來先服務(wù)調(diào)度算法我使用了void?FCFS(int?cidao,int?m),該算法主要完成按原來鍵盤輸入的次序來尋道,然后輸出移動的總磁道數(shù)和平均尋道長度。 程序函數(shù)調(diào)用關(guān)系下圖為磁盤調(diào)度算法之先來先服務(wù)的函數(shù)之間的調(diào)用關(guān)系,主函數(shù)調(diào)用子函數(shù),子函數(shù)也可以調(diào)用子函數(shù)。 main() trans() decide() FCFS() 圖1 程序函數(shù)調(diào)用關(guān)系 系統(tǒng)詳細(xì)設(shè)計 設(shè)計任務(wù) 本系統(tǒng)采用先來先服務(wù)算法FCFS,來實現(xiàn)磁盤調(diào)度的模

4、擬。 設(shè)計要求 根據(jù)磁盤調(diào)度算法的思想,編程實現(xiàn)求先來先服務(wù)算法的平均尋道長度。 算法思想先來先服務(wù)的算法,即先來的請求先被響應(yīng)。FCFS算法看起來是比較合理的算法,但是當(dāng)請求頻率過高的時候FCFS算法的響應(yīng)時間就會大大的延長,這也是最基本的算法,直接實現(xiàn)的是由輸入的順序來順序的執(zhí)行。? FCFS 算法流程圖 開始 輸入總的磁道數(shù) 輸入提出磁盤I/O申請的進(jìn)程數(shù) 輸入磁道序列(以0結(jié)束) 輸入開始的磁道號輸出磁盤請求序列和掃描序列 求移動的總的磁道數(shù) 求平均尋道長度 結(jié)束 圖2 FCFS算法流程圖3 系統(tǒng)實現(xiàn)1)開發(fā)環(huán)境:Window72)開發(fā)工具和編程語言 開發(fā)工具:Visual C+ 編程

5、語言:C+4 系統(tǒng)測試與分析 系統(tǒng)運行結(jié)果 圖3 運行結(jié)果 系統(tǒng)運行結(jié)果分析 根據(jù)系統(tǒng)提示進(jìn)行輸入數(shù)據(jù),如輸入的總磁道數(shù)為9,磁盤I/O申請的進(jìn)程數(shù)為9,輸入的磁道系列為55 58 39 18 90 160 150 38 184 ,輸入開始磁道號:100(當(dāng)輸入的數(shù)據(jù)類型有誤是,會提醒重新輸入),可以得到磁盤請求的序列和掃描的序列都為55 58 39 18 90 160 150 38 184,也得到了移動的總磁道數(shù)為498和平均尋道長度為 。實驗結(jié)果符合預(yù)想的結(jié)果。 ?5 總結(jié)通過本次課程設(shè)計,我對磁盤的調(diào)度算法之先來先服務(wù)有了更深的了解,但在本次課程設(shè)計過程也遇到了一些問題,最后在同學(xué)的幫助

6、下通過各種嘗試,發(fā)現(xiàn)需將字符轉(zhuǎn)化成數(shù)字,這也算是一個不小的收獲吧??傮w而言,本次課設(shè)讓我學(xué)會了很多,也讓我對以前學(xué)過的知識回顧了很多,本次課程設(shè)計涉及的算法并不難,都是些基本的算法,所以告訴我們要打好基礎(chǔ),學(xué)好數(shù)據(jù)結(jié)構(gòu)也是很重要的。還有就是讓我對操作系統(tǒng)的基礎(chǔ)知識了解得更透徹了。我深刻認(rèn)識到算法的邏輯性對程序的重要影響,算法的準(zhǔn)確度對程序運行結(jié)果的重要影響,這對我以后在操作系統(tǒng)的學(xué)習(xí)中有極大幫助。參考文獻(xiàn)【1】湯小丹 湯子瀛 計算機操作系統(tǒng)(第三版)西安電子科技大學(xué)出版社 【2】付永華 王素立 薛海燕 C+高級語言程序設(shè)計 中國電力出版社【3】張海云 計算機操作系統(tǒng)原理實驗指導(dǎo)書 中國電力出版

7、社附:源程序代碼#include#include#include#includeusing namespace std;#define maxsize 100 /定義最大數(shù)組域int decide(char str) /判斷輸入數(shù)據(jù)是否有效 int i=0;while(stri!=0) if(stri9)return 0;break;i+;return i;int trans(char str,int a) /將字符串轉(zhuǎn)換成數(shù)字int i;int sum=0;for(i=0;ia;i+)sum=sum+(int)(stri-0)*pow(10,a-i-1);return sum;void FC

8、FS(int cidao,int m) /磁道號數(shù)組,個數(shù)為m int beginnumber;/開始的磁道號 int sum=0; /總尋道長度 int j,i;int a; /字符串個數(shù)char str100; float ave; /平均尋道長度B:coutstr; /對輸入數(shù)據(jù)進(jìn)行有效性判斷 a=decide(str); if(a=0) cout輸入數(shù)據(jù)的類型錯誤,請重新輸入!endl; goto B;/輸入錯誤,跳轉(zhuǎn)到B,重新輸入 else beginnumber=trans(str,a); /輸入開始的磁道號 sum+=abs(cidao0-beginnumber);cout磁盤請

9、求序列為:; for( i=0;im;i+) /按先來先服務(wù)的策略輸出磁盤請求序列 coutcidaoi ; coutendl; cout磁盤掃描序列為:; for( i=0;im;i+) /輸出磁盤掃描序列 coutcidaoi ; for(i=0,j=1;jm;i+,j+) /求平均尋道長度 sum+=abs(cidaoj-cidaoi); ave=(float)(sum)/(float)(m); coutendl;cout移動的總磁道數(shù)為:sumendl; cout平均尋道長度:aveendl;void main() cout-endl; cout計算機科學(xué)與技術(shù)endl; cout 3

10、endl; cout 張愿麗endl; cout-endl; int a; int cidaomaxsize; int i=0,number; int n; coutn; coutendl; int m; coutm; coutendl; char str100; A:cout請輸入磁道序列(0結(jié)束):str; /對輸入數(shù)據(jù)進(jìn)行有效性判斷 a=decide(str); if(a=0) cout輸入數(shù)據(jù)的類型錯誤,請重新輸入!str; /對輸入數(shù)據(jù)進(jìn)行有效性判斷 a=decide(str); if(a=0) cout輸入數(shù)據(jù)的類型錯誤,請重新輸入!endl; else cidaoi=trans(str,a); i+; number=i-1; /要訪問的磁道數(shù) cout您輸入的磁道序列為:; for(i=0;inumber;i+) coutcidaoi ; /輸出磁道序列 coutendl; FCFS(cidao,numbe

溫馨提示

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

評論

0/150

提交評論