武漢理工大學作業系統 課內實驗

2021-10-25 15:08:06 字數 2353 閱讀 2279

二、磁碟排程

總結作業系統課內實驗有兩個,驗收的學姐人賊好,只看了驗收結果,沒讓我將**細節。。。

1.pc機

2.visual studio 2019

 ⑴ 動態分割槽管理的主存分配模擬系統的設計—最先適應法、最佳適應法、最壞適應法(選擇1~3種),模擬實現記憶體的分配**;

 ⑵ 能夠輸入給定的記憶體大小,程序的個數,每個程序所需記憶體空間的大小等;

 ⑶ 能夠選擇分配或**操作;並能顯示完成記憶體分配或**後記憶體空間的使用情況;

 ⑷ 能夠顯示程序在記憶體的儲存位址、大小等。

空閒區表(可用表/自由鏈)的組織方式有兩種:按空閒區大小的公升序(降序)組織,按空閒區首址公升序(降序)組織。尋找合適的空閒區是關鍵。通常有3種方法:最先適應法,最佳適應法,最壞適應法。

資料結構設計

//分割槽說明表

struct partition_table

;

//從空閒區表的第一項開始按順序查詢

while

(p)//空閒區大於程序申請的記憶體大小,擷取所需大小

else

} p = p-

>next;

}

最佳適應法(best-fit):按分割槽大小的遞增次序,查詢,找到符合要求的第乙個分割槽。分配時,根據申請的大小逐個與空閒區大小進行比較,找到第乙個滿足要求的空閒區則停止搜尋(它是最適合的,即最佳的,因為最接近於所要求的大小)。

while

(p)}

p = p-

>next;

}

最壞適應法(worst-fit):按分割槽大小的遞減次序,從頭查詢,找到符合要求的第乙個分割槽。分配時總是取表中的第乙個表目,若空間小於申請者的要求,則表示系統中無滿足要求的空閒區,分配失敗;否則,將從該空閒區中分配給申請者,然後修改空閒區的大小,並將它插入到空閒區表的適當位置。

while

(p)}

p = p-

>next;

}

 ⑴ 選擇1~3種磁碟排程演算法(先來先服務法、最短尋道時間優先、電梯演算法)模擬實現磁碟排程;

 ⑵ 能夠輸入當前磁頭的位置、磁頭移動方向、磁軌訪問請求序列等;

 ⑶ 計算磁頭移動的總磁軌數;

 ⑷ 能夠顯示磁碟排程結果(磁頭依次訪問的磁軌號順序等)。

磁碟是可被多個程序共享的裝置。當有多個程序都請求訪問磁碟時,應採用一種適當的排程演算法,對這些請求的服務順序調整安排,旨在降低平均磁碟服務時間,達到公平、高效。

先來先服務(fcfs):按訪問請求到達的先後次序服務。

先後即按順序遍歷。

最短尋道時間優先(sstf):優先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優先。

//查詢離現在磁軌位置最近的

for(

int i =

0; i < count; i++)}

sum +

= t;

t =10000

; cout << list[k]

<<

" ";

flag[k]=1

; a = list[k]

;}

掃瞄演算法(scan,電梯演算法):當裝置無訪問請求時,磁頭不動;當有訪問請求時,磁頭按乙個方向移動,在移動過程中對遇到的訪問請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃瞄,否則改變移動方向,並為經過的訪問請求服務,如此反覆。

cout <<

"請輸入磁頭移動方向(0-左,1-右):"

<< endl;

cin >> b;

cout <<

"磁碟排程結果:"

<< endl;

if(b ==0)

sum +

=abs

(list[i]

- a)

; a = list[i]

; cout << list[i]

<<

" ";

}//找完最小的回去找比起始位置大的那個最小的位置

for(

int i = k; i < count; i++)}

else

if(b ==1)

sum +

= list[i]

- a;

a = list[i]

; cout << list[i]

<<

" ";

}//找完最大的回去找比起始位置小的那個最大的位置

for(

int i = k; i >=

0; i--

)}

武漢理工大學C語言 課內實驗

問題描述 1.求乙個三位數的各位數字 當 n 為 152 時,分別求出 n 的個位數字 digit1 十位數字 digit2 和百位數字 digit3 的值。2.三天打魚兩天曬網 中國有句俗語 三天打魚兩天曬網 假設某人從某天起,開始 三天打魚兩天曬網 問這個人在以後的第 n 天中是 打魚 還是 曬...

武漢理工大學數值分析課內實驗

二 用c語言實現幾個求常微分方程初值問題解的程式。euler方法及其改進 龍格 庫塔 runge kutta 方法 三 用c語言實現幾個非線性方程求根的程式。二分法 迭代法 迭代過程的加速 四 用c語言實現幾個求線性方程組解的程式。gauss消去法 總結數值分析課內實驗採用程式設計的思想去實現有關數...

武漢理工大學編譯原理 課內實驗

二 賦值語句的語法分析程式設計與實現 總結編譯原理課設驗收更水,只看結果。1.pc機 2.c 整合環境 通過設計 編制 除錯乙個具體的詞法分析程式,加深對詞法分析原理的理解,並掌握在對程式語言源程式進行掃瞄過程中將其分解為各類單詞的詞法分析方法。完成對某一種常用高階語言 如pl 0語言 的各類單詞的...