1. 程式人生 > >文件系統(III)

文件系統(III)

作用 進行 管理 文件名 nod 字段 空間管理 技術分享 系統

文件系統的實現:

要註意磁盤上與內存中內容布局

名詞:

磁盤分區:把一個物理磁盤存儲空間劃分成幾個相互獨立的部分稱為分區

文件卷:磁盤上的邏輯分區,由一個或多個物理塊(簇)組成,文件卷可以為整個磁盤或部分分區甚至幾個跨盤(幾個磁盤)

文件卷的幾個區域:

①引導區(每卷一個)

可以從該區引導操作系統

②卷信息

卷的塊數,塊的大小,空閑塊數量和指針,空閑FCB數量和指針 都為元數據

③目錄文件(管理文件

④用戶文件

文件卷的幾個要點:

1.同一個文件卷使用同一份管理數據進行文件分配和磁盤空間管理

2.不同文件卷管理數據是相互獨立的

3.文件卷包含文件系統信息文件(普通文件,目錄文件)

未分配空間

磁盤中塊的大小 = 一個或者2的冪個扇區

格式化:在文件卷上建立文件系統即建立並初始化用於文件分配和磁盤分配和磁盤空閑空間管理的管理數據

磁盤布局:
技術分享

內存中數據結構:

①系統打開文件表

i.整個系統一張

ii.放在內存中:用於保存已打開文件的FCB

技術分享

②用戶打開文件表

i.每個進程一張

i.進程PCB中記錄了用戶打開文件表的位置,為什麽PCB中不記錄FCB?因為FCB已經在系統打開文件表中記錄了

技術分享

文件目錄檢查

給出全路徑和相對路徑來訪問一個文件

技術分享

目錄項分解法(加快目錄檢索)

方法:把FCB(FCB可以理解成目錄項)分成兩部分

一部分:符號目錄項(文件名,文件號就是i節點作用)

另一部分:基本目錄項(除文件名外所有字段含有文件號)例如unix i-node

技術分享

目錄項分解法如何提升檢索速度?

技術分享

分解前:

所需物理塊數 = 128(目錄項數) * 48(FCB理解成目錄項大小)/512(物理塊大小) = 13塊

平均訪盤次數最好就是第一塊就訪問到,最差到13塊訪問到,平均為(1 +13) /2 = 7次

分解後:

符號目錄文件所需物理塊數 = 8(符號目錄項大小) * 128 (原來目錄項數量變成符號目錄項數量)/512(物理塊大小) = 2塊

基本目錄文件所需物理塊 = 同理42 * 128(FCB一分為二數目相等)/512 = 11塊;

平均訪盤次數現在只要找符號目錄項即可(最好1 + 最差2)/2 = 1.5 + 通過文件號(就是i節點號作用)到基本目錄項尋找文件起始物理塊號1次 = 2.5次

Unix中確切的:

FCB = 目錄項(文件名,i節點號(就像符號目錄項中文件名和文件號)) + i節點

技術分享

技術分享

         今天就到這,謝謝!!XDDD!

文件系統(III)