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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、18441005目文案大全實用文檔輸出排序后的撤盤序列為,183839555890150160184峨盤掃描序列為二9058s639381815016.184平均尋道長度:27.55555534362793使用CSCA篥法輸入2935558391890160150381844100輸出排序后的磁盤序列為:183839555890150160184磁盤掃描序列為:150160184183839555890平均尋道長度: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;/要訪問的磁道數(shù)privatestaticintcount;/磁道privatestaticintcidao=newintmaxsize;/當(dāng)前磁道號privatestaticintnow;/總尋道長度privatestaticintsum=0;/平均尋道長度privatestaticdoubleAverageDi

9、stance;/當(dāng)前移動臂的移動的方向(1(true)表示向外,0(false)表示向內(nèi))privatestaticbooleandirection;/算法選擇/1-使用FCFSf法文案大全實用文檔/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法文案大全實用文檔/4-使用CSCA算法option=stdin.nextInt();/要訪問的磁道數(shù)count=stdin.nextInt();/磁道for(i=0;icount;i+)cidaoi=stdin.nextInt();/當(dāng)前磁道號now=stdin.nextInt();if(option=3)/輸入當(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();/*先來先效勞調(diào)度算法*/publicstaticvoidFCFS()sum+=Math.abs(cidao0-now);System.out.print(磁盤掃描序列為:);for(i=0;icount;i+)/輸出磁盤掃描序列System.out.print(cidaoi+);文案大全實用文檔)for(i=0,j=1;jcount;i+,j+)求平均尋

13、道長度(sum+=Math.abs(cidaoj-cidaoi);AverageDistance=(float)(sum)/(float)(count);)System.out.println();System.out.println(平均尋道長度:+AverageDistance);)/*最短尋道時間優(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)前磁道號小

14、于請求序列中最小者,那么直接由內(nèi)向外依次給予各請求效勞System.out.print(磁盤掃描序列為:);for(i=0;icidao0&nowcidaocount-1)/假設(shè)當(dāng)前磁道號大于請求序列中最小者且小于最大者System.out.print(磁盤掃描序列為:);while(cidaok=0)&(rcount)/當(dāng)前磁道在請求序列范圍內(nèi)(if(now-cidaol)=(cidaor-now)/選擇與當(dā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)/磁頭移動到序列的最小號,返回外側(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(平均尋道長度:+AverageDistance);/*/publicstaticvoidSCAN()/k=1;intl,r;bubb

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

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

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

溫馨提示

  • 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

提交評論