




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、學號P1514032 專業 計算機科學與技術 姓名 實驗日期2017.12.7 教師簽字 成績實驗報告【實驗名稱】 磁盤調度(二) 【實驗目的】 磁盤調度中尋道時間直接影響到數據訪問的快慢,處理好磁盤尋道時間是關鍵。分別采用掃描策略、循環掃描策略處理。【實驗原理】 1. 掃描算法(SCAN算法)SCAN算法,也就是很形象的電梯調度算法。先按照一個方向(比如從外向內掃描),掃描的過程中依次調度經過的磁道。當掃描到最里層的一個磁道時反向掃描直至所有磁道都被調度。2.循環掃描算法(CSCAN算法)CSCAN算法,循環掃描算法,它的思想是,訪問完最里面一個要求服務的序列之后,從最外層的序號開始往里走。
2、也就是始終保持一個方向,故稱為循環掃描算法。【數據結構和符號說明】(1) 數據結構和符號說明編譯語言:C+數據結構:結構體數組符號定義: typedef struct Track/磁道結構體 int id;/磁道序列 int state=0;/是否訪問過,未被訪問置狀態為0 Track;Track trackN;/最大磁道數為100Track track1N;/復制的磁道數組用于輸出int stepN;/移動距離int num,i,current_track,num1; /當前磁道即部分中間變量函數說明:void init()/初始化程序void input()/輸入函數void sort1(
3、)/從小到大排序int abs(int a,int b)/相減的絕對值int find_first_bignum()/尋找第一個最大值int find_first_smallnum()/尋找第一個最小值void SCAN(int up_or_down) /掃描算法void CSCAN(int up_or_down) /循環掃描算法void output(Track a)/輸出函數void output_average_track()/輸出平均尋道時間int show()/顯示用戶界面/返回值為輸入的選擇項流程圖:SCAN算法:CSCAN算法(與SCAN算法基本類似):代碼:#include&l
4、t;stdio.h>#define N 100typedef struct Track int id;/磁道序列 int state=0;/是否訪問過,未被訪問置狀態為0 Track;Track trackN;/最大磁道數為100Track track1N;int stepN;/移動距離int num,i,current_track,num1;void init()/初始化程序 num=0; for (i=0; i<num; i+) tracki.state=-1;/id置為1 track1i.state=-1; stepi=-1;/移動距離為-1 void input()/輸入函
5、數 printf("輸入當前磁道n"); scanf("%d",¤t_track); num1=current_track; printf("輸入要訪問的磁道數目n"); scanf("%d",&num); printf("輸入要訪問磁道序列n"); for(i=0; i<num; i+) scanf("%d",&tracki.id);void FCFS()/先來先服務 for(i=0; i<num; i+) if(curren
6、t_track-tracki.id)<0)/求移動距離 stepi=tracki.id-current_track; else stepi=current_track-tracki.id;/取絕對值 tracki.state=1;/狀態置為1 current_track=tracki.id;/更新當前磁道 int abs(int a,int b)/相減的絕對值 return a-b>0?a-b:b-a;int Serch_min_pos()/尋找到當前磁道最短的需求磁道 int min=45536;/最小距離標志 int pos; for(int i=0; i<num; i+
7、) if(tracki.state=1) continue; else if(min>abs(tracki.id,current_track)/尋找最小距離 min=abs(tracki.id,current_track); pos=i; trackpos.state=1; return pos;/返回在數組中的位置void SSTF()/最短尋道優先 for(i=0; i<num; i+)/計數器 track1i=trackSerch_min_pos();/更新到要輸出的數組中 stepi=abs(track1i.id,current_track);/移動距離 current_t
8、rack= track1i.id;/標志 void output(Track a)/輸出函數 printf("nn <從%d號磁道開始>n",num1); printf("=n");/排班 printf("被訪問的下一個磁道tt移動距離(磁道數)n"); for(i=0; i<num; i+) printf("t%4dtt|t%4dn",ai.id,stepi); printf("=n");void output_average_track()/輸出平均尋道時間 double
9、sum=0;/和 for(i=0; i<num; i+) sum+=stepi; printf(" 平均尋道長度%3.2fnnn",sum/num);/輸出int show()/顯示用戶界面 int choose;/選擇 printf("n*早期的磁盤調度算法*n"); printf("tt1、先來先服務(FCFS)n"); printf("tt2、最短尋道時間優先(SSTF)n"); printf("tt3、退出(EXIT)n"); scanf("%d",&c
10、hoose); return choose;int main() do init(); switch(show()/返回值是選擇 case 1:/FCFS input(); FCFS(); output(track); output_average_track(); break; case 2:/最短尋道 input(); SSTF(); output(track1); output_average_track(); break; case 3:/退出 return 0; default: break; while(1); return 0;截圖:主界面開始,輸入選擇先來先服務還是最短尋道優先
11、,輸入當前磁道,輸入要訪問的磁道,輸入要訪問的磁道序列。SCAN算法輸入 當前磁道100 ,9個磁道,分別為55 58 39 18 90 160 150 38 184,此時選擇方向向上結果正確。輸入 當前磁道100 ,9個磁道,分別為55 58 39 18 90 160 150 38 184,此時選擇方向向下結果正確。CSCAN算法輸入 當前磁道100 ,9個磁道,分別為55 58 39 18 90 160 150 38 184,此時選擇方向向上結果正確。 輸入 當前磁道100 ,9個磁道,分別為55 58 39 18 90 160 150 38 184,此時選擇方向向上結果正確。【小結與討論
12、】1、掃描算法又稱為電梯算法,其原理與電梯運行情況相似,即運行方向上的請求優先,若是訪問方向向上,則先依次訪問較大的磁道號至頂,再向下訪問嬌小的磁道號;若是訪問方向向下,則先依次訪問較小的磁道號至底,再向上訪問嬌大的磁道號。2、循環掃描算法又稱為單向電梯算法,若是訪問方向向上,則向上依次訪問完較大的磁道號后,返回最低端,依次向上訪問較小的磁道號;若是訪問方向向下,則向下依次訪問完較小的磁道號后,返回最頂端,依次向下訪問較大的磁道號。3、此次實驗我用兩個數組分別存放了一個磁道表和復制的磁道表,根據兩個算法的原理,只要將其進行排序,然后分別對兩個數組進行正向和逆向的訪問即可。4、具體實現時,我將兩種算法的兩種初始掃描方向寫在了一個函數之中,調用時通過參數scan和參數up_or_down設置。并設置了尋找大于當前數組的最近最小值和最近的大值進行選擇結果,這是因為初始磁道號將磁道數組分成上下(高低地址)兩塊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新解讀《CB-T 3887-1999小艇 舷內機槳軸端和槳轂》新解讀
- 新解讀《CB-T 3864-1999船用移動式濾油裝置》新解讀
- 新解讀《CB-T 23-1999船用放泄螺塞》新解讀
- 自然資源法規農村建房和房屋翻建需辦理相關手續二篇
- 3.2.3 呼吸作用(方案1)課件 人教版(2024)七年級下冊
- Brand KPIs for health insurance:Reliance in India-英文培訓課件2025.4
- Brand KPIs for neobanking Hey Banco in Mexico-英文培訓課件2025.4
- 呼叫中心培訓管理制度
- 培訓學校三防管理制度
- 物理中考二輪復習教案 8實驗專題1(力學)
- 專題01 文字情境類選擇題(解析版)
- 原料藥簡介課件
- 幼兒園食堂食品安全法培訓
- 2024年中考物理復習專練:電磁繼電器問題的綜合應用題(原卷版+解析)
- 舞蹈職業規劃書大學生
- 自動化類專業生涯發展展示
- 【MOOC】畫法幾何與工程制圖-江蘇海洋大學 中國大學慕課MOOC答案
- 江蘇省揚州市2024年化學中考試題【附答案】
- 《無人機測繪技術》項目2任務3無人機航測正射影像
- DB43-T 1577-2024基于鎘含量的稻谷分級收儲技術規程
- 信號完整性分析之1314
評論
0/150
提交評論