操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc

操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc

ID:57520026

大?。?63.51 KB

頁數(shù):10頁

時(shí)間:2020-08-26

操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc_第1頁
操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc_第2頁
操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc_第3頁
操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc_第4頁
操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc_第5頁
資源描述:

《操作系統(tǒng)實(shí)驗(yàn)磁盤調(diào)度掃描算法循環(huán)掃描算法.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、學(xué)號(hào)P1514032專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)姓名實(shí)驗(yàn)日期2017.12.7教師簽字成績實(shí)驗(yàn)報(bào)告【實(shí)驗(yàn)名稱】磁盤調(diào)度(二)【實(shí)驗(yàn)?zāi)康摹看疟P調(diào)度中尋道時(shí)間直接影響到數(shù)據(jù)訪問的快慢,處理好磁盤尋道時(shí)間是關(guān)鍵。分別采用掃描策略、循環(huán)掃描策略處理。【實(shí)驗(yàn)原理】1.掃描算法(SCAN算法)SCAN算法,也就是很形象的電梯調(diào)度算法。先按照一個(gè)方向(比如從外向內(nèi)掃描),掃描的過程中依次調(diào)度經(jīng)過的磁道。當(dāng)掃描到最里層的一個(gè)磁道時(shí)反向掃描直至所有磁道都被調(diào)度。2.循環(huán)掃描算法(CSCAN算法)CSCAN算法,循環(huán)掃描算法,它的思想是,訪問完最里面一個(gè)要求服務(wù)的序列之后,從最外層的序

2、號(hào)開始往里走。也就是始終保持一個(gè)方向,故稱為循環(huán)掃描算法?!緮?shù)據(jù)結(jié)構(gòu)和符號(hào)說明】(1)數(shù)據(jù)結(jié)構(gòu)和符號(hào)說明編譯語言:C++數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體數(shù)組符號(hào)定義:typedefstructTrack//磁道結(jié)構(gòu)體{intid;//磁道序列intstate=0;//是否訪問過,未被訪問置狀態(tài)為0}Track;Tracktrack[N];//最大磁道數(shù)為100Tracktrack1[N];//復(fù)制的磁道數(shù)組用于輸出intstep[N];//移動(dòng)距離intnum,i,current_track,num1;//當(dāng)前磁道即部分中間變量函數(shù)說明:voidinit()//初始化程序v

3、oidinput()//輸入函數(shù)voidsort1()//從小到大排序intabs(inta,intb)//相減的絕對(duì)值intfind_first_bignum()//尋找第一個(gè)最大值intfind_first_smallnum()//尋找第一個(gè)最小值voidSCAN(intup_or_down)//掃描算法voidCSCAN(intup_or_down)//循環(huán)掃描算法voidoutput(Tracka[])//輸出函數(shù)voidoutput_average_track()//輸出平均尋道時(shí)間intshow()//顯示用戶界面//返回值為輸入的選擇項(xiàng)流程圖:

4、SCAN算法:CSCAN算法(與SCAN算法基本類似):代碼:#include#defineN100typedefstructTrack{intid;//磁道序列intstate=0;//是否訪問過,未被訪問置狀態(tài)為0}Track;Tracktrack[N];//最大磁道數(shù)為100Tracktrack1[N];intstep[N];//移動(dòng)距離intnum,i,current_track,num1;voidinit()//初始化程序{num=0;for(i=0;i

5、k1[i].state=-1;step[i]=-1;//移動(dòng)距離為-1}}voidinput()//輸入函數(shù){printf("輸入當(dāng)前磁道");scanf("%d",¤t_track);num1=current_track;printf("輸入要訪問的磁道數(shù)目");scanf("%d",&num);printf("輸入要訪問磁道序列");for(i=0;i

6、rack[i].id)<0)//求移動(dòng)距離step[i]=track[i].id-current_track;elsestep[i]=current_track-track[i].id;//取絕對(duì)值track[i].state=1;//狀態(tài)置為1current_track=track[i].id;//更新當(dāng)前磁道}}intabs(inta,intb)//相減的絕對(duì)值{returna-b>0?a-b:b-a;}intSerch_min_pos()//尋找到當(dāng)前磁道最短的需求磁道{intmin=45536;//最小距離標(biāo)志intpos;for(inti=0;i<

7、num;i++)if(track[i].state==1)continue;elseif(min>abs(track[i].id,current_track))//尋找最小距離{min=abs(track[i].id,current_track);pos=i;}track[pos].state=1;returnpos;//返回在數(shù)組中的位置}voidSSTF()//最短尋道優(yōu)先{for(i=0;i

8、id,current_track);//移動(dòng)距離cu

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。