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