UNIX文件的實現——索引節點

POSIX沒有強制磁盤上的文件採取任何特定的表示方法,但是傳統的UNIX文件都是按照改進的樹狀結構來實現的。目錄項中包含一個文件名 和一個定長結構的引用(索引節點)。索引節點包含與文件長度、文件位置、文件所有者、創建時間、最後訪問時間、最後修改時間、文件權限有關的信息。如圖1所示:
                                                                  圖 1
 
除了基本信息,還包含指向文件中前幾個數據塊的指針。如果文件很大,就需要使用到間接指針了。
 
單級間接指針是一個指向指針塊的指針,而指針塊中的指針是指向附加數據塊的;
二級間接指針是一個執行間接知真塊的指針;
三級間接指針塊包含了一個指向二級間接指針塊的指針。
 
舉例:
假設一個索引節點佔用128字節,狀態信息佔用68字節,指針爲四字節長,一個塊的長度是8K字節,每個塊指針爲32bit。根據以上信息,可以計算
(1)直接指針的個數爲:
(128-68-4×3)字節/4字節=12個
 
(2)指針指針可直接表示的文件大小:
12×8×1024=98304字節
 
(3)一級間接指針指向一個塊大小爲8K字節,8K字節的指針塊包含指針個數可以爲2K個,每個指針對應數據塊大小爲8K字節,這樣一級間接指針可表示文件大小爲:
2×1024×8×1024=16M字節
 
(4)同理,二級間接索引可表示文件大小爲:
2K×2K×8K = 32吉字節。。。。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章