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

2021-08-13 14:03:38 字數 2734 閱讀 6168

磁碟儲存空間的分配和**演算法類似於主儲存器的可變分割槽方式的分配和**。同學們可參考實驗四的第一題。

為了減少移臂次數,磁碟上的資訊按柱面上各磁軌順序存放。現假定乙個盤組共有200個柱面,(編號0-199)每個柱面有20個磁軌(編號0-19,同一柱面上的各磁軌分布在各盤面上,故磁軌號即盤面號。),每個磁軌被分成等長的6個物理記錄(編號0-5,每個盤面被分成若干個扇區,故每個磁軌上的物理記錄號即為對應的扇區號。

)。那麼,空閒塊號與磁碟實體地址的對應關係如下:

假設mm

則物理記錄號 = m

磁軌號=

柱面號=[ ]

(4) 刪除乙個檔案時,從檔案目錄表中可得到該檔案在磁碟上的起始位址和邏輯記錄個數,假定每個邏輯記錄佔磁碟上的一塊,則可推算出歸還後的起始空閒塊號和塊數,登記到空閒區表中。換算關係如下:

起始空閒塊號=(柱面號20+磁軌號)6+物理記錄號

空閒塊數=邏輯記錄數

(5) 請設計磁碟儲存空間的分配和**程式,要求把分配到的空閒塊轉換成磁碟實體地址,把歸還的磁碟空間轉換成空閒塊號。

假定空閒區表的初值如提示(1)中指出,現有一檔案要占用10塊,執行你所設計的分配程式,顯示或列印分配後的空閒區表以及分配到的磁碟空間的起始實體地址。然後,有一檔案被刪除,它占用的磁碟空間為:1號柱面2號磁軌,0號物理記錄開始的4塊,執行你所設計的**程式,顯示或列印**後的空閒區表。

第二題:用位示圖管理磁碟儲存空間

[提示]:

(1) 為了提高磁碟儲存空間的利用率,可在磁碟上組織成鏈結檔案、索引檔案,這類檔案可以把邏輯記錄存放在不連續的儲存空間。為了表示哪些磁碟空間已被占用,哪些磁碟空間是空閒的,可用位示圖來指出。位示圖由若干位元組構成,每一位與磁碟上的一塊對應,「1」狀態表示相應塊已占用,「0」狀態表示該塊為空閒。

位示圖的形式與實驗四中的位示圖一樣,但要注意,對於主儲存空間和磁碟儲存空間應該用不同的位示圖來管理,絕不可混用。

(2) 申請一塊磁碟空間時,由分配程式查位示圖,找出乙個為「0」的位,計算出這一位對應塊的磁碟實體地址,且把該位置成占用狀態「1」。假設現在有乙個盤組共80個柱面,每個柱面有兩個磁軌,每個磁軌分成4個物理記錄。那麼,當在位示圖中找到某一位元組的某一位為「0」時,這個空閒塊對應的磁碟實體地址為:

柱面號=位元組號

磁軌號物理記錄號=

(3) 歸還一塊磁碟空間時,由**程式根據歸還的磁碟實體地址計算出歸還塊在位示圖中的對應位,把該位置成「0」。按照(2)中假設的盤組,歸還塊在位示圖中的位置計算如下:

位元組號=柱面號

位數=磁軌號4+物理記錄號

(4) 設計申請一塊磁碟空間和歸還一塊磁碟空間的程式。要求能顯示或列印程式執行前和執行後的位示圖;分配時把分配到的磁碟空間的實體地址顯示或列印出來,歸還時把歸還塊對應於位示圖的位元組號和位數顯示或列印出來。

(5) 假定已有如表6-1的磁碟空間被占用了,現在要申請五塊磁碟空間,執行分配程式,按(4)中要求顯示或列印執行的結果。然後再歸還如表6-2的空間,執行**程式,按(4)中的要求顯示或列印執行結果。

表6-1

表6-2

第三題:模擬unix系統的空閒塊成組鏈結法,實現磁碟儲存空間的管理。

[提示]:

(1) 假定磁碟儲存空間已被劃分成長度為n的等長塊,共有m塊可供使用。unix系統中採用空閒塊成組鏈結的方法來管理磁碟儲存空間,將磁碟中的每n個空閒塊(n

當第一項內容為「0」時,則第二項起指出的空閒塊是最後一組。

(2) 現模擬unix系統的空閒塊成組鏈結,假定共有8塊可供使用,每3塊為一組,則空閒塊成組鏈結的初始狀態為:

開始時,空閒塊號是順序排列的,但經若干次的分配和歸還操作後,空閒塊的鏈結就未必按序排列了。

用二維陣列a:array [0…m-1] of array [0…n-1]來模擬管理磁碟空間,用a[i]表示第i塊,第0塊a[0]作為專用塊。

(3) 成組鏈結的分組情況記錄在磁碟物理塊中,為了查詢鏈結情況,必須把它們讀入主存,故當磁碟初始化後,系統先將專用塊內容複製到主存中。定義乙個陣列ma存放專用塊內容,即ma: =a[0]。

申請一塊磁碟空間時,查ma,從中找出空閒塊號,當一組的空閒塊只剩第一塊時,則應把該塊中指出的下一組的空閒塊數和塊號複製到專用塊中,然後把該塊分配給申請者。當一組的空閒塊分配完後則把專用塊內容(下一組鏈結情況)複製到主存,再為申請者分配。分配演算法如圖6-1。

圖6-1 採用成組鏈結的分配演算法

(4) 歸還一塊時給出歸還的塊號,叵當前組不滿規定塊數時,將歸還塊登記入該組;若當前組已滿,則另建一新組,這時歸還塊作為新一組的第一塊,應把主存中登記的一組鏈結情況ma複製到歸還塊中,然後在ma重新登記乙個新組。歸還一塊的演算法如圖6-2。

圖6-2 採用成組鏈結的**演算法

(5) 設計分配和歸還磁碟空間的程式,能顯示或列印分配的磁碟空間的塊號,在完成一次分配或歸還後能顯示或列印各空閒塊組的情況(各組的空閒塊數和塊號)。本實驗省去了塊號與實體地址之間的轉換工作,而在實際的系統中必須進行塊號與實體地址的轉換工作。

(6) 執行你所設計的程式,假定空閒塊鏈結的初始狀態如提示(2),現先分配4塊,再依次歸還第2塊和第6塊。把執行後分配到的塊號依次顯示或列印出來,且顯示或列印空閒塊組的情況。

在上次執行的基礎上繼續分配3塊,然後歸還第1塊,再申請5塊,顯示或列印依次分配到的塊號及空閒塊組情況。

四、實驗報告

(1) 實驗題目。

(2) 程式中使用的資料結構及符號說明。

(3) 流程圖。

(4) 列印乙份源程式並附上注釋。

(5) 按照各題中給出的初值,把程式執行的結果按各題要求列印出來。為了檢測程式的正確性,可自己再假設一組初值,執行設計的程式,檢查執行結果。

作業系統磁碟空間管理的實驗報告

實驗五磁碟儲存空間的管理 一 實驗目的 磁碟格式化時,系統把磁碟儲存空間分成許多磁軌。每個磁軌又分成若干個扇區 又叫做磁碟塊 之後用fdisk命令對硬碟進行分割槽,即使只有乙個分割槽,也必須用fdisk命令進行分割槽。分割槽的目的,就是製作檔案卷,形成檔案系統。乙個檔案卷一般都被劃分成引導扇區 檔案...

作業系統實驗報告 儲存管理實驗

儲存管理實驗 通過編寫和除錯儲存管理的模擬程式以加深對儲存管理方案的理解。熟悉虛存管理的各種頁面淘汰演算法。通過編寫和除錯位址轉換過程的模擬程式以加強對位址轉換過程的了解。作業系統 windows xp 編譯環境 visual c 6.0 由於在單道批處理系統中,作業一投入執行,它就占有計算機的一切...

作業系統實驗可變分割槽儲存管理

學時 4學時 實驗內容 主儲存器空間分配實驗。實驗目的 通過首次適應演算法 最佳適應演算法和最壞適應演算法實現主存空間的分配,可以使讀者可好地理解儲存分配演算法。實驗題目 編寫一段程式來模擬可變分割槽管理方法。要求能通過檔案形式定義空閒區表 能隨意輸入作業及需要分配的空間 能分別使用首次適應演算法 ...