




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)六 磁盤調(diào)度算法1、 實(shí)驗(yàn)?zāi)康耐ㄟ^這次實(shí)驗(yàn),加深對(duì)磁盤調(diào)度算法的理解,進(jìn)一步掌握先來先服務(wù)FCFS、最短尋道時(shí)間優(yōu)先SSTF、SCAN和循環(huán)SCAN算法的實(shí)現(xiàn)方法。2、 試驗(yàn)內(nèi)容問題描述:設(shè)計(jì)程序模擬先來先服務(wù)FCFS、最短尋道時(shí)間優(yōu)先SSTF、SCAN和循環(huán)SCAN算法的工作過程。假設(shè)有n個(gè)磁道號(hào)所組成的磁道訪問序列,給定開始磁道號(hào)m和磁頭移動(dòng)的方向(正向或者反向),分別利用不同的磁盤調(diào)度算法訪問磁道序列,給出每一次訪問的磁頭移動(dòng)距離,計(jì)算每種算法的平均尋道長(zhǎng)度。3、 程序要求:1)利用先來先服務(wù)FCFS、最短尋道時(shí)間優(yōu)先SSTF、SCAN和循環(huán)SCAN算法模擬磁道訪問過程。2)模擬四種
2、算法的磁道訪問過程,給出每個(gè)磁道訪問的磁頭移動(dòng)距離。3)輸入:磁道個(gè)數(shù)n和磁道訪問序列,開始磁道號(hào)m和磁頭移動(dòng)方向(對(duì)SCAN和循環(huán)SCAN算法有效),算法選擇1-FCFS,2-SSTF,3-SCAN,4-循環(huán)SCAN。4)輸出:每種算法的平均尋道長(zhǎng)度。4、 需求分析(1) 輸入的形式和輸入值的范圍算法選擇要訪問的磁道數(shù)磁道當(dāng)前磁道號(hào)輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向(第三個(gè)算法)(2) 輸出的形式每種算法的平均尋道長(zhǎng)度(3) 測(cè)試用例先來先服務(wù)FCFS最短尋道時(shí)間優(yōu)先SCAN算法 CSCAN5、 調(diào)試分析通過對(duì)這次操作系統(tǒng)實(shí)驗(yàn),使我懂得了操作系統(tǒng)磁盤調(diào)度的四種算法:先來先服務(wù)算法(FCFS)、最短尋
3、道時(shí)間優(yōu)先算法(SSTF)、掃描算法(SCAN)和循環(huán)掃描算法(CSCAN)。加深了我對(duì)這門課程的理解。鍛煉了自己在考慮全局也不是細(xì)節(jié)的能力。通過這次實(shí)驗(yàn),再一次熟悉并深入掌握了程序設(shè)計(jì)語言和算法設(shè)計(jì)。6、 測(cè)試結(jié)果(1) 使用FCFS算法輸入輸出(2) 使用SSTF算法輸入輸出(3) 使用SCAN算法(向增長(zhǎng)方向)輸入輸出(4) 使用SCAN算法(向減少方向)輸入輸出(5) 使用CSCAN算法輸入輸出7、 附錄(java)package experiment;import java.io.BufferedInputStream;import java.io.FileInputStream;i
4、mport java.io.FileNotFoundException;import java.util.Scanner;public class F_Disc_Dispatch private static int maxsize = 100;/ 要訪問的磁道數(shù)private static int count;/ 磁道private static int cidao = new intmaxsize;/ 當(dāng)前磁道號(hào)private static int now;/ 總尋道長(zhǎng)度private static int sum = 0;/ 平均尋道長(zhǎng)度private static double Ave
5、rageDistance;/ 當(dāng)前移動(dòng)臂的移動(dòng)的方向 (1 (true)表示向外 ,0(false)表示向內(nèi))private static boolean direction;/ 算法選擇/ 1-使用FCFS算法/ 2-使用SSTF算法/ 3-使用SCAN算法/ 4-使用CSCAN算法private static int option = 0;/ for循環(huán)用到變量private static int i;private static int j;private static int k;private static Scanner stdin;public static void main(
6、String args) throws FileNotFoundException / 輸入數(shù)據(jù)input();/ int a;switch (option) case 1: / 使用FCFS算法FCFS();break;case 2: / 使用SSTF算法SSTF();break;case 3: / 使用SCAN算法SCAN();break;case 4: / 使用CSCAN算法CSCAN();break;/ 輸入數(shù)據(jù)public static void input() throws FileNotFoundException BufferedInputStream in = new Buf
7、feredInputStream(new FileInputStream("./file/06");System.setIn(in);stdin = new Scanner(System.in);/ 算法選擇/ 1-使用FCFS算法/ 2-使用SSTF算法/ 3-使用SCAN算法/ 4-使用CSCAN算法option = stdin.nextInt();/ 要訪問的磁道數(shù)count = stdin.nextInt();/ 磁道for (i = 0; i < count; i+) cidaoi = stdin.nextInt();/ 當(dāng)前磁道號(hào)now = stdin.n
8、extInt();if (option = 3) / 輸入當(dāng)前移動(dòng)臂的移動(dòng)的方向 (1 表示向外 ,0表示向內(nèi)) :try int g = stdin.nextInt();if (g = 1) direction = true; else direction = false; catch (Exception e) / TODO: handle exceptionSystem.out.println("direction沒有正確輸入");return;stdin.close();/* 先來先服務(wù)調(diào)度算法 */public static void FCFS() sum +=
9、Math.abs(cidao0 - now);System.out.print("磁盤掃描序列為:");for (i = 0; i < count; i+) / 輸出磁盤掃描序列System.out.print(cidaoi + " ");for (i = 0, j = 1; j < count; i+, j+) / 求平均尋道長(zhǎng)度sum += Math.abs(cidaoj - cidaoi);AverageDistance = (float) (sum) / (float) (count);System.out.println("
10、;");System.out.println("平均尋道長(zhǎng)度:" + AverageDistance);/* 最短尋道時(shí)間優(yōu)先調(diào)度算法 */public static void SSTF() k = 1;int l, r;bubble(); / 調(diào)用冒泡排序算法排序if (cidaocount - 1 <= now) / 若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,則直接由外向內(nèi)依次給予各請(qǐng)求服務(wù)System.out.print("磁盤掃描序列為:");for (i = count - 1; i >= 0; i-) System.out.pr
11、int(cidaoi + " ");sum = now - cidao0;if (cidao0 >= now) / 若當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,則直接由內(nèi)向外依次給予各請(qǐng)求服務(wù)System.out.print("磁盤掃描序列為:");for (i = 0; i < count; i+) System.out.print(cidaoi + " ");sum = cidaocount - 1 - now;if (now > cidao0 && now < cidaocount - 1) / 若
12、當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者System.out.print("磁盤掃描序列為:");while (cidaok < now) / 確定當(dāng)前磁道在已排的序列中的位置,后面的算法都用到了,可以直接復(fù)制后少量修改,節(jié)省時(shí)間。k+;l = k - 1;r = k;while (l >= 0) && (r < count) / 當(dāng)前磁道在請(qǐng)求序列范圍內(nèi)if (now - cidaol) <= (cidaor - now) / 選擇與當(dāng)前磁道最近的請(qǐng)求給予服務(wù)System.out.print(cidaol + " &qu
13、ot;);sum += now - cidaol;now = cidaol;l = l - 1; else System.out.print(cidaor + " ");sum += cidaor - now;now = cidaor;r = r + 1;if (l = -1) / 磁頭移動(dòng)到序列的最小號(hào),返回外側(cè)掃描仍未掃描的磁道for (j = r; j < count; j+) System.out.print(cidaoj + " ");sum += cidaocount - 1 - cidao0; else / 磁頭移動(dòng)到序列的最大號(hào),返
14、回內(nèi)側(cè)掃描仍未掃描的磁道for (j = l; 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);/* 掃描調(diào)度算法 */public static void SCAN() / 先要給出當(dāng)前磁
15、道號(hào)和移動(dòng)臂的移動(dòng)方向k = 1;int l, r;bubble(); / 調(diào)用冒泡排序算法排序if (cidaocount - 1 <= now) / 若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,則直接由外向內(nèi)依次給予各請(qǐng)求服務(wù),此情況同最短尋道優(yōu)先System.out.print("磁盤掃描序列為:");for (i = count - 1; i >= 0; i-) System.out.print(cidaoi + " ");sum = now - cidao0;if (cidao0 >= now) / 若當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,則
16、直接由內(nèi)向外依次給予各請(qǐng)求服務(wù),此情況同最短尋道優(yōu)先System.out.print("磁盤掃描序列為:");for (i = 0; i < count; i+)System.out.print(cidaoi + " ");sum = cidaocount - 1 - now;if (now > cidao0 && now < cidaocount - 1) / 若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者while (cidaok < now) k+;l = k - 1;r = k;if (direction =
17、 false) / 選擇移動(dòng)臂方向向內(nèi),則先向內(nèi)掃描System.out.print("磁盤掃描序列為:");for (j = l; j >= 0; j-) System.out.print(cidaoj + " "); / 輸出向內(nèi)掃描的序列for (j = r; j < count; j+) / 磁頭移動(dòng)到最小號(hào),則改變方向向外掃描未掃描的磁道System.out.print(cidaoj + " "); / 輸出向外掃描的序列sum = now - 2 * cidao0 + cidaocount - 1; else
18、/ 選擇移動(dòng)臂方向向外,則先向外掃描System.out.print("磁盤掃描序列為:");for (j = r; j < count; j+) System.out.print(cidaoj + " "); / 輸出向外掃描的序列for (j = l; j >= 0; j-) / 磁頭移動(dòng)到最大號(hào),則改變方向向內(nèi)掃描未掃描的磁道System.out.print(cidaoj + " ");sum = -now - cidao0 + 2 * cidaocount - 1;AverageDistance = (float)
19、 (sum) / (float) (count);System.out.println("");System.out.println("平均尋道長(zhǎng)度: " + AverageDistance);/* 循環(huán)掃描調(diào)度算法 */public static void CSCAN() k = 1;int l, r;bubble(); / 調(diào)用冒泡排序算法排序if (cidaocount - 1 <= now) / 若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最大者,則直接將移動(dòng)臂移動(dòng)到最小號(hào)磁道依次向外給予各請(qǐng)求服務(wù)System.out.print("磁盤掃描序列為
20、:");for (i = 0; i < count; i+) System.out.print(cidaoi + " ");sum = now - 2 * cidao0 + cidaocount - 1;if (cidao0 >= now) / 若當(dāng)前磁道號(hào)小于請(qǐng)求序列中最小者,則直接由內(nèi)向外依次給予各請(qǐng)求服務(wù),此情況同最短尋道優(yōu)先System.out.print("磁盤掃描序列為:");for (i = 0; i < count; i+)System.out.print(cidaoi + " ");sum = cidaocount - 1 - now;if (now > cidao0 && now < cidaocount - 1) / 若當(dāng)前磁道號(hào)大于請(qǐng)求序列中最小者且小于最大者System.out.print("磁盤掃描序列為:");while (cidaok < now) / 單向反復(fù)地從內(nèi)向外掃描k+;l = k - 1;r = k;for (j = r; j < count; j+) System.out.print(cid
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧安防保障城市安全的智能系統(tǒng)
- 從心理成長(zhǎng)到創(chuàng)新教育的理論框架構(gòu)建與實(shí)踐
- 智慧城市公共安全的綜合治理與大數(shù)據(jù)應(yīng)用
- 學(xué)生創(chuàng)新能力培養(yǎng)的教育心理學(xué)策略
- 以教育技術(shù)為媒介探索增強(qiáng)學(xué)生學(xué)習(xí)動(dòng)力和效率的新路徑
- 當(dāng)代辦公室內(nèi)應(yīng)用個(gè)化學(xué)資料的有效性及其對(duì)于技術(shù)變革的響應(yīng)
- 中職數(shù)學(xué)基礎(chǔ)模塊課件
- 企業(yè)級(jí)數(shù)據(jù)治理平臺(tái)的構(gòu)建與實(shí)踐
- 醫(yī)療科技與智慧教育的深度融合探討
- 機(jī)器人輔助的醫(yī)療教學(xué)與智能教育探索
- 初中體育教學(xué)中德育教育的現(xiàn)狀、問題與突破路徑探究
- 基層供銷社管理制度
- 農(nóng)業(yè)供應(yīng)鏈管理考試試題及答案
- 人行雨棚施工方案
- 2025-2030中國(guó)晶圓鍵合系統(tǒng)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析研究報(bào)告
- 從校園到職場(chǎng):新員工角色轉(zhuǎn)換與職業(yè)化塑造
- 奶茶服務(wù)協(xié)議合同
- 學(xué)生食堂維修改造工程施工組織設(shè)計(jì)
- 2025年章魚小丸子項(xiàng)目可行性研究報(bào)告
- “中小學(xué)生每天至少2小時(shí)體育活動(dòng)”的價(jià)值追求與實(shí)現(xiàn)路徑研究
- 2024年四川成都農(nóng)業(yè)科技中心招聘筆試真題
評(píng)論
0/150
提交評(píng)論