位示图 c语言程序,位示图模拟文件系统空闲快管理c语言
用數(shù)組表示位示圖,其中的每一位對應(yīng)磁盤一個物理塊的狀態(tài),0表示空閑,1表示分配;當(dāng)請求分配一個磁盤塊時,尋找到數(shù)組中為0的位,計算相對磁盤塊號,并計算其在磁盤中的物理地址(柱面號、磁道號、物理塊號),并將其狀態(tài)由0變到1。
當(dāng)釋放某一物理塊時,已知其在磁盤中的物理地址,計算其相對磁盤塊號,再找到位示圖數(shù)組中的相應(yīng)位,將其狀態(tài)由1變?yōu)?。
實驗三 文件系統(tǒng)空閑空間管理模擬
一、實驗內(nèi)容及要求
要求打印或顯示程序運(yùn)行前和運(yùn)行后的位示圖,以及分配和回收磁盤的物理地址過程;
二、基本原理
用數(shù)組表示位示圖,其中的每一位對應(yīng)磁盤一個物理塊的狀態(tài),0表示空閑,1表示分配;當(dāng)請求分配一個磁盤塊時,尋找到數(shù)組中為0的位,計算相對磁盤塊號,并計算其在磁盤中的物理地址(柱面號、磁道號、物理塊號),并將其狀態(tài)由0變到1。
當(dāng)釋放某一物理塊時,已知其在磁盤中的物理地址,計算其相對磁盤塊號,再找到位示圖數(shù)組中的相應(yīng)位,將其狀態(tài)由1變?yōu)?。
三、實驗相關(guān)公式: 計算公式如下:
(1) 已知位示圖中的下標(biāo)i , j, 計算相對塊號
Block= I * sizeof( int )+j
(2)已知相對塊號計算柱面、磁道、物理塊號如下:
柱面號 C= 相對塊號/(每柱面磁道數(shù)*每磁道物理塊數(shù))
磁道號 H= 相對塊號%(每柱面磁道數(shù)*每磁道物理塊數(shù))/ 每磁道物理塊數(shù) 物理塊號 R= 相對塊號%每磁道物理塊數(shù)
4. 提出申請磁盤塊或釋放磁盤塊的要求,根據(jù)要求完成操作。
若申請盤塊,則在位示圖中找到為0的位,計算相對磁盤塊號,再計算相應(yīng)具體物理設(shè)備的柱面號C、磁道號H和物理塊號R,計算方法如步驟3;輸出分配的CHR地址,并將位示圖相應(yīng)位由0變?yōu)?,輸出位示圖;
若釋放盤塊,則從已分配磁盤塊表中隨機(jī)選擇一個盤塊釋放,此時,已知CHR地址,計算該盤塊的相對磁盤塊號,再計算其相應(yīng)信息在位示圖中的位置( i,j)。計算過程如下:
相對磁盤塊號 = 柱面號*每柱面磁道數(shù)*每磁道物理塊數(shù)+
磁道號*每磁道物理塊數(shù)+ 物理塊號
i = 相對磁盤塊號/ sizeof(int)
j = 相對磁盤塊號% sizeof(int)
四、實驗程序清單:
#include
#include
總結(jié)
以上是生活随笔為你收集整理的位示图 c语言程序,位示图模拟文件系统空闲快管理c语言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下samba病毒,Samba
- 下一篇: 计算机网络是互相连接的自治系统,自治系统