作業系統 檔案系統

2021-10-07 10:07:37 字數 2728 閱讀 2280

通過設計乙個基於索引結構的檔案系統,

了解檔案系統設計以及物理塊分配的基本概念。

硬體環境:計算機一台,區域網環境;

軟體環境: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是作業系統檔案模組的乙個軟體層,對上面的使用者空間提供統一的操作介面,同時也對下層提供了一套必須實現的介面。這個思想其實在軟體工程中很常用,雖然檔案系統底層實...

作業系統之檔案系統簡介

作業系統是怎麼幫助找到乙個檔案的準確位置的呢?使用者是根據自己作業系統建立的根目錄 此電腦 和使用者自己建立的資料夾找到的,這些資料夾又在磁碟中充當什麼角色呢?每個檔案有乙個自己的元資料,元資料記錄了對應檔案的相關資訊,比如,檔案的起始塊的位置,記錄了檔案的最後一次修改時間,記錄了檔案的大小等等。超...