通過設計乙個基於索引結構的檔案系統,
了解檔案系統設計以及物理塊分配的基本概念。
硬體環境:計算機一台,區域網環境;
軟體環境:windows 作業系統、visual studio2019
1、設計乙個檔案系統的索引結構,描述邏輯結構與物理索引結構之間的關係;
2、檔案建立等基本功能;
**段:
/*問1、這個標頭檔案的作用是什麼??*/
/*問2、這個標頭檔案的作用是什麼??*/
//作用:裡面定義了五種型別、一些巨集和通用工具函式。
#include
"stdio.h"
#include
"stdlib.h"
//問3、以下是什麼內容的定義?
//檔案索引表的建立
struct index
*wq;
#define jobn 20
//問6、本句的作用是什麼?
//將索引表設為jobn 為20
//問7、以下是什麼內容的定義?
//檔案目錄
struct list
*head;
//作業序列
struct que job[jobn]
;int i, j, ly, li;
char bb;
int nfile =0;
//系統的總檔案數,模擬開始時為0;
int n =0;
//工作變數,標記當前分配檔案
int m =32;
//系統中空閒磁碟物理塊數,開始為32塊
int j[4]
[8];
//用位圖表示這些磁碟物理塊,j[j][i]為0時標記第j*8+i塊空閒,為1標記該塊已分配出去
file* e;
//記錄模擬中的相關資料
int jobs =0;
//作業數
/*問8、fenpei函式的作用是什麼?根據以下**和注釋分析,請在實驗報告中畫出fenpei函式流程圖*/
//如果當前空閒磁碟物理塊數能夠滿足需要,則為檔案進行分配空間
//將檔名以及大小,索引位址填寫到檔案目錄
void
fenpei()
//從位圖中分配,分配出去的塊其狀態為1。一直到分配完成
for(j =
0; j <4&&
(ly < job[n]
.size)
; j++
)for
(i =
0; i <8&&
(ly < job[n]
.size)
; i++
)//找到乙個空閒塊,就分配出去}}
//如果當前空閒磁碟物理塊數不能夠滿足需要,則出錯處理
else
//報告目前為止的分配情況,首先報告檔案目錄的部分資訊
fprintf
(e,"\n.........................................\n");
fprintf
(e,"\n...this time ,the file directory: ----\n");
fprintf
(e,"name index_address\n");
for(x1 =
0; x1 < n +
1; x1++
)fprintf
(e," %c %x\n"
, head-
>names[x1]
, head-
>p[x1]);
//其次報告檔案索引表的部分資訊
for(x1 =
0; x1 < n +
1; x1++
)//第三,報告位圖資訊
fprintf
(e,)
;for
(j =
0; j <
4; j++)}
/*9、請將程式執行結果截圖*/
/*10、請問結果檔案的名字以及儲存位置?*/
//檔案:results
//儲存位置:c:/results.txt
/*11、請對照**對結果檔案的內容加以分析*/
//初始化點陣圖和檔案目錄
void
main()
//初始化檔案目錄
printf
("please input number of jobs:");
scanf
("%d"
,&jobs)
;scanf
("%c"
,&bb)
;printf
("\n");
int kk =0;
//問12、以下輸入的是什麼?請問這些資訊儲存在哪個資料結構中?
// 將輸入的檔案儲存在job陣列中
while
(kk < jobs)
for(k =
1; k <= jobs; k++
)fenpei()
;//每個檔案進行一次分配
//問13、以下4行**的作用是什麼?
//將記憶體**,釋放記憶體
fclose
(e);
for(i =
0; i <
32; i++
)free
(head)
; head =
null
;}
作業系統 檔案系統
5.2開啟檔案 在作業系統中就是確定程序操作哪個檔案。這個確定過程由兩個事件構成 1.將使用者程序task struct中的 filp 20 與核心中的file table 64 進行掛接。2.將使用者程序需要開啟的檔案對應的i節點在file table 64 中進行登記。filp 20 掌控乙個程...
作業系統 虛擬檔案系統
乙個系統中應當可以支援多個檔案系統。但是由於每乙個檔案系統底層機制不同,作業系統如何相容各個檔案系統?這就是虛擬檔案系統vfs的功能了。vfs是作業系統檔案模組的乙個軟體層,對上面的使用者空間提供統一的操作介面,同時也對下層提供了一套必須實現的介面。這個思想其實在軟體工程中很常用,雖然檔案系統底層實...
作業系統之檔案系統簡介
作業系統是怎麼幫助找到乙個檔案的準確位置的呢?使用者是根據自己作業系統建立的根目錄 此電腦 和使用者自己建立的資料夾找到的,這些資料夾又在磁碟中充當什麼角色呢?每個檔案有乙個自己的元資料,元資料記錄了對應檔案的相關資訊,比如,檔案的起始塊的位置,記錄了檔案的最後一次修改時間,記錄了檔案的大小等等。超...