操作系統(tǒng)磁盤調(diào)度算法java版_第1頁(yè)
操作系統(tǒng)磁盤調(diào)度算法java版_第2頁(yè)
操作系統(tǒng)磁盤調(diào)度算法java版_第3頁(yè)
操作系統(tǒng)磁盤調(diào)度算法java版_第4頁(yè)
操作系統(tǒng)磁盤調(diào)度算法java版_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)用文檔實(shí)驗(yàn)六磁盤調(diào)度算法1 1、實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)這次實(shí)驗(yàn),加深對(duì)磁盤調(diào)度算法的理解,進(jìn)一步掌握先來(lái)先效勞 FCFSFCFS、最短尋道時(shí)間優(yōu)先 SSTFSSTF、SCANSCAN 和循環(huán) SCANSCAN 算法的實(shí)現(xiàn)方法.2 2、試驗(yàn)內(nèi)容問(wèn)題描述:設(shè)計(jì)程序模擬先來(lái)先效勞FCFSFCFS、 最短尋道時(shí)間優(yōu)先SSTFSSTF、 SCASCAN N和循環(huán)SCASCAN N算法的工作過(guò)程.假設(shè)有n n個(gè)磁道號(hào)所組成的磁道訪問(wèn)序列,給定開始磁道號(hào) m m 和磁頭移動(dòng)的方向正向或者反向,分別利用不同的磁盤調(diào)度算法訪問(wèn)磁道序列,給出每一次訪問(wèn)的磁頭移動(dòng)距離,計(jì)算每種算法的平均尋道長(zhǎng)度.3 3、程序要求:1 1利

2、用先來(lái)先效勞 FCFSFCFS、最短尋道時(shí)間優(yōu)先 SSTFSSTF、SCANSCAN 和循環(huán) SCASCAN N算法模擬磁道訪問(wèn)過(guò)程.2 2模擬四種算法的磁道訪問(wèn)過(guò)程,給出每個(gè)磁道訪問(wèn)的磁頭移動(dòng)距離.3 3 輸入: 磁道個(gè)數(shù) n n 和磁道訪問(wèn)序列,開始磁道號(hào) m m 和磁頭移動(dòng)方向 對(duì)SCANSCAN 和循環(huán) SCANSCAN 算法有效 ,算法選擇 1-FCFS,2-SSTF,3-SCAN1-FCFS,2-SSTF,3-SCAN,4,4-循環(huán) SCANSCAN.4 4輸出:每種算法的平均尋道長(zhǎng)度.4 4、需求分析文案大全實(shí)用文檔1 1輸入的形式和輸入值的范圍算法選擇要訪問(wèn)的磁道數(shù)磁道當(dāng)前磁道

3、號(hào)輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向第三個(gè)算法2 2輸出的形式每種算法的平均尋道長(zhǎng)度3 3測(cè)試用例先來(lái)先效勞 FCFSFCFS從100100號(hào)磁道開始?被訪問(wèn)的下一個(gè)磁道號(hào)移動(dòng)距唐磁道數(shù)555545455S5S3 3393919191S1S212150507Z7Z1601607070150150JOJO3838112112184184146146平均尋道長(zhǎng)度工55.55.3 3最短尋道時(shí)間優(yōu)先從1010.號(hào)磁道開始被訪問(wèn)的下一個(gè)磁道母移動(dòng)距離磁道散909010105858323255553 3393916163S3S1 11818202015015013213216016010101841842424

4、平均尋道長(zhǎng)度1 127.27.5 5實(shí)用文檔SCASCA 篥法從 1QU1QU 磁道開始.向磁道號(hào)增加方向訪問(wèn)被訪問(wèn)的下1個(gè)磁道巳移動(dòng)距離?磁道數(shù)1501505D5D1601601O1O1841843434909094945858323255553 3393916163838X X18182020平均尋道長(zhǎng)度:/7,g/7,gCSCANCSCAN從 1010.1t磁道開始,訪問(wèn)、向磁道號(hào)增加方向被訪問(wèn)的下移動(dòng)距離一個(gè)磁道號(hào)磁道數(shù)15015050501601601010184184242418181661663S3S202039391 1555516165S5S3 390903232平均尋道長(zhǎng)度

5、 1 127.527.55 5、調(diào)試分析通過(guò)對(duì)這次操作系統(tǒng)實(shí)驗(yàn),使我懂得了操作系統(tǒng)磁盤調(diào)度的四種算法:先來(lái)先效勞算法FCFSFCFS、最短尋道時(shí)間優(yōu)先算法SSTFSSTF、掃描算法SCANSCAN和循環(huán)掃描算法CSCANCSCAN.加深了我對(duì)這門課程的理解.鍛煉了自己在考慮全局也不是細(xì)節(jié)的水平.通過(guò)這次實(shí)驗(yàn),再一次熟悉并深入掌握了程序設(shè)計(jì)語(yǔ)言和算法設(shè)計(jì).文案大全實(shí)用文檔6 6、測(cè)試結(jié)果使用FCFST法輸入112935558391890160150381844100|輸出磁盤掃描序列力:555839189016015038184平均尋道長(zhǎng)度:55.33333206176758I(2)使用SSTF

6、B法輸入12|2935558391890160150381844100輸出排序后的磁盤序列為工183839555890150160184磁盤掃描序列為:995855393818156160184平均尋道長(zhǎng)度二27.55555534362793使用SCANT法(向增長(zhǎng)方向)輸入13293555839189016015038184410051|輸出排序后的磁盤序列為:183839555896150160184磁盤掃描序列為:150160184905855393818平均尋道長(zhǎng)度:27,77777862548828(4)使用SCANT法(向減少方向)輸入13293555839189016015038

7、18441005目文案大全實(shí)用文檔輸出排序后的撤盤序列為,183839555890150160184峨盤掃描序列為二9058s639381815016.184平均尋道長(zhǎng)度:27.55555534362793使用CSCA篥法輸入2935558391890160150381844100輸出排序后的磁盤序列為:183839555890150160184磁盤掃描序列為:150160184183839555890平均尋道長(zhǎng)度:35.77777862548828|7 7、附錄(java)(java)packageexperiment;importjava.io.BufferedlnputStream;im

8、portjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.util.Scanner;publicclassF_Disc_Dispatchprivatestaticintmaxsize=100;/要訪問(wèn)的磁道數(shù)privatestaticintcount;/磁道privatestaticintcidao=newintmaxsize;/當(dāng)前磁道號(hào)privatestaticintnow;/總尋道長(zhǎng)度privatestaticintsum=0;/平均尋道長(zhǎng)度privatestaticdoubleAverageDi

9、stance;/當(dāng)前移動(dòng)臂的移動(dòng)的方向(1(true)表示向外,0(false)表示向內(nèi))privatestaticbooleandirection;/算法選擇/1-使用FCFSf法文案大全實(shí)用文檔/2-使用SST算法/3-使用SCA酷法/4-使用CSCA算法privatestaticintoption=0;/for循環(huán)用到變量privatestaticinti;privatestaticintj;privatestaticintk;privatestaticScannerstdin;publicstaticvoidmain(String口args)throwsFileNotFoundExce

10、ption/輸入數(shù)據(jù)input();/inta;switch(option)case 1:/使用FCFSf法FCFS();break;case 2:/使用SST算法SSTF();break;case 3:/使用SCAN1法SCAN();break;case 4:/使用CSCAN法CSCAN();break;/輸入數(shù)據(jù)publicstaticvoidinput()throwsFileNotFoundExceptionBufferedInputStreamin=newBufferedInputStream(newFileInputStream(./file/06);System.setIn(in)

11、;stdin=newScanner(System.in);/算法選擇case 5:1-使用FCFS1法case 6:2-使用SST算法/3-使用SCANT法文案大全實(shí)用文檔/4-使用CSCA算法option=stdin.nextInt();/要訪問(wèn)的磁道數(shù)count=stdin.nextInt();/磁道for(i=0;icount;i+)cidaoi=stdin.nextInt();/當(dāng)前磁道號(hào)now=stdin.nextInt();if(option=3)/輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向(1表示向外,0表示向內(nèi)):tryintg=stdin.nextInt();if(g=1)direction

12、=true;elsedirection=false;catch(Exceptione)/TODO:handleexceptionSystem.out.println(direction沒有正確輸入);return;stdin.close();/*先來(lái)先效勞調(diào)度算法*/publicstaticvoidFCFS()sum+=Math.abs(cidao0-now);System.out.print(磁盤掃描序列為:);for(i=0;icount;i+)/輸出磁盤掃描序列System.out.print(cidaoi+);文案大全實(shí)用文檔)for(i=0,j=1;jcount;i+,j+)求平均尋

13、道長(zhǎng)度(sum+=Math.abs(cidaoj-cidaoi);AverageDistance=(float)(sum)/(float)(count);)System.out.println();System.out.println(平均尋道長(zhǎng)度:+AverageDistance);)/*最短尋道時(shí)間優(yōu)先調(diào)度算法*/publicstaticvoidSSTF()k=1;intl,r;bubble();/調(diào)用冒泡排序算法排序if(cidaocount-1=0;i-)System.out.print(cidaoi+);)sum=now-cidao0;)if(cidao0=now)/假設(shè)當(dāng)前磁道號(hào)小

14、于請(qǐng)求序列中最小者,那么直接由內(nèi)向外依次給予各請(qǐng)求效勞System.out.print(磁盤掃描序列為:);for(i=0;icidao0&nowcidaocount-1)/假設(shè)當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者System.out.print(磁盤掃描序列為:);while(cidaok=0)&(rcount)/當(dāng)前磁道在請(qǐng)求序列范圍內(nèi)(if(now-cidaol)=(cidaor-now)/選擇與當(dāng)前磁道最近的請(qǐng)求給予效勞(System.out.print(cidaol+);sum+=now-cidaol;now=cidaol;l=l-1;elseSystem.ou

15、t.print(cidaor+);sum+=cidaor-now;now=cidaor;r=r+1;if(l=-1)/磁頭移動(dòng)到序列的最小號(hào),返回外側(cè)掃描仍未掃描的磁道for(j=r;j=0;j-)System.out.print(cidaoj+);sum+=cidaocount-1-cidao0;AverageDistance=(float)(sum)/(float)(count);System.out.println();System.out.println(平均尋道長(zhǎng)度:+AverageDistance);/*/publicstaticvoidSCAN()/k=1;intl,r;bubb

16、le();/調(diào)用冒泡排序算法排序if(cidaocount-1=0;i-)System.out.print(cidaoi+);掃描調(diào)度算法先要給出當(dāng)前磁道號(hào)和移動(dòng)臂的移動(dòng)方向假設(shè)當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,那么直接sum=now-cidao0;if(cidao0=now)/假設(shè)當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,那么直接由內(nèi)向外依次給予各請(qǐng)求效勞,此情況同最短尋道優(yōu)先System.out.print(磁盤掃描序列為:);for(i=0;icidao0&nowcidaocount-1)/假設(shè)當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者while(cidaok=0;j-)System.out

17、.print(cidaoj+);/輸出向內(nèi)掃描的序列for(j=r;jcount;j+)/磁頭移動(dòng)到最小號(hào),那么改變方向向外掃描未掃描的磁道System.out.print(cidaoj+);/輸出向外掃描的序列sum=now-2*cidao0+cidaocount-1;else/選擇移動(dòng)臂方向向外,那么先向外掃描System.out.print(磁盤掃描序列為:);for(j=r;j=0;j-)/磁頭移動(dòng)到最大號(hào),那么改變方向向內(nèi)掃描未掃描的磁道文案大全實(shí)用文檔(System.out.print(cidaoj+);)sum=-now-cidao0+2*cidaocount-1;)Averag

18、eDistance=(float)(sum)/(float)(count);System.out.println();System.out.println(平均尋道長(zhǎng)度:+AverageDistance);)/*循環(huán)掃描調(diào)度算法*/publicstaticvoidCSCAN()k=1;intl,r;bubble();/調(diào)用冒泡排序算法排序if(cidaocount-1=now)/假設(shè)當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,那么直接將移動(dòng)臂移動(dòng)到最小號(hào)磁道依次向外給予各請(qǐng)求效勞System.out.print(磁盤掃描序列為:);for(i=0;i=now)/假設(shè)當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,那么直接由內(nèi)向外依次給予各請(qǐng)求效勞,此情況同最短尋道優(yōu)先System.out.print(磁盤掃描序列為:);for(i=0;icidao0&nowcidaocount-1)/假設(shè)當(dāng)前磁道號(hào)大于請(qǐng)求序列

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論