作業系統磁碟排程程式模擬

2022-10-08 08:12:02 字數 1237 閱讀 5909

實驗4: 磁碟排程程式模擬

實驗目的: 編寫程式來模擬計算機的兩種排程方式:

(1)先來先服務排程演算法

(2)最短尋道優先排程演算法

程式設計

1.先來先服務演算法(fcfs)

先來先服務(fcfs)排程:按先來後到次序服務,未作優化。

最簡單的移臂排程演算法是「先來先服務」排程演算法,這個演算法實際上不考慮訪問者要求訪問的物理位置,而只是考慮訪問者提出訪問請求的先後次序。例如,如果現在讀寫磁頭正在50號柱面上執行輸出操作,而等待訪問者依次要訪問的柱面為130、199、32、159、15、148、61、99,那麼,當50號柱面上的操作結束後,移動臂將按請求的先後次序先移到130號柱面,最後到達99號柱面。

採用先來先服務演算法決定等待訪問者執行輸入輸出操作的次序時,移動臂來回地移動。先來先服務演算法花費的尋找時間較長,所以執行輸入輸出操作的總時間也很長。

2.短尋道時間優先演算法(sstf)

最短尋找時間優先排程演算法總是從等待訪問者中挑選尋找時間最短的那個請求先執行的,而不管訪問者到來的先後次序。現在仍利用同乙個例子來討論,現在當50號柱面的操作結束後,應該先處理61號柱面的請求,然後到達32號柱面執行操作,隨後處理15號柱面請求,後繼操作的次序應該是99、130、148、159、199。

採用最短尋找時間優先演算法決定等待訪問者執行操作的次序時,讀寫磁頭總共移動了200多個柱面的距離,與先來先服務、演算法比較,大幅度地減少了尋找時間,因而縮短了為各訪問者請求服務的平均時間,也就提高了系統效率。

但最短查詢時間優先(sstf)排程,fcfs會引起讀寫頭在盤面上的大範圍移動,sstf查詢距離磁頭最短(也就是查詢時間最短)的請求作為下一次服務的物件。sstf查詢模式有高度區域性化的傾向,會推遲一些請求的服務,甚至引起無限拖延(又稱飢餓)。

結果分析

1.先來先服務

2.最短尋道時間優先

程式原始碼:

#include<>

#include<>

void fcfs(int b,int n,int init) //先來先服務

printf("平均尋道長度:%f\n",sum*1.0/n);

}void sstf(int b,int n,int k) //最短尋道法

printf("平均尋道長度:%f\n",sum*1.0/n);

}void main()

printf("請輸入指標所在磁軌:");

scanf("%d",&init);

k=1;

while(k)}}

作業系統實驗6 磁碟儲存空間管理

磁碟儲存空間的分配和 演算法類似於主儲存器的可變分割槽方式的分配和 同學們可參考實驗四的第一題。為了減少移臂次數,磁碟上的資訊按柱面上各磁軌順序存放。現假定乙個盤組共有200個柱面,編號0 199 每個柱面有20個磁軌 編號0 19,同一柱面上的各磁軌分布在各盤面上,故磁軌號即盤面號。每個磁軌被分成...

作業系統程序排程實驗報告

實驗一程序排程實驗 專業 xx 學號 xx 姓名 實驗日期 20xx年xx月xx日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,要求至少採用兩種不同的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思路 將...

作業系統程序排程實驗報告

哈爾濱工業大學電腦科學與技術學院 實驗報告 課程名稱 作業系統 課程型別 必修 實驗專案名稱 程序排程 實驗題目 先來先服務和優先順序排程的實現 班級 學號 姓名 一 實驗目的 二 實驗要求及實驗環境 由於在多道程式或多個任務系統中,系統同時處於就緒狀態的程序有若干個,即能執行的程序數遠大於處理機個...