寫在前面 本系列的文章是博主邊學邊記錄的,可能不是特別的正確,因為會加上博主自己的理解,僅供參考。 正文 一、文件的物理組織方式 目前常用的外存組織方式有: 1.連續組織方式 為每個文件分配一篇連續的磁碟空間,稱為連續組織方式。 2.鏈接組織方式 在對文件採取鏈式組織方式時,可以為每個文件分配不連續 ...
寫在前面
本系列的文章是博主邊學邊記錄的,可能不是特別的正確,因為會加上博主自己的理解,僅供參考。
正文
一、文件的物理組織方式
目前常用的外存組織方式有:
1.連續組織方式
為每個文件分配一篇連續的磁碟空間,稱為連續組織方式。
2.鏈接組織方式
在對文件採取鏈式組織方式時,可以為每個文件分配不連續的磁碟空間。通過鏈接指針將一個文件的所有盤塊鏈接在一起。形成鏈式組織方式
3.索引組織方式
在對問文件採取索引組織方式時,形成的就是索引式文件結構。
下麵講解展開來說下這三種文件存儲方式:
連續組織方式:
連續組織方式是針對於文件來說的,給每一文件分配一塊連續的空間。如果這個文件比較大的話,那麼需要給他分配n塊連續的磁碟塊。所以說,連續存儲方式並不是說所有文件存放的位置是相鄰接的。
通過圖我們可以看到,連續文件的目錄中包含是文件名,開始地址以及文件大小。
連續存儲方式的優點:
1.順序訪問很容易,根據目錄,可以很方便的往下讀取文件數據
2.順序訪問速度塊。因為每個文件的空間是連續的,讀取的時候不用再跳轉到其他盤塊,所以讀取速度快。
連續存儲方式缺點:
1.因為每個文件存儲的時候,需要確定大小。再分配磁碟的時候,可能會導致一部分小的磁碟空間得不到利用,造成外部碎片
2.對於動態增長的文件,沒有辦法去處理,大小已經固定了,可能造成內部碎片。
補充下:
內部碎片:已被分配出去但是由於一些原因得不到使用。
外部碎片:未被分配出去但是得不到使用的空間。
2.鏈式分配方式
為了提高空間的利用率,降低碎片的情況。可以使用離散的分配方式,也就是鏈式分配。可以為每個文件分配多個不連續的盤塊,再通過盤塊上的鏈接指針,將屬於同一個文件的多個離散的盤塊鏈接成一個鏈表。
鏈式分配方式又分為兩種實現方式:
1.隱式鏈接
文件目錄中的每個目錄相中,都含有指向連接文件的第一個盤塊和最後一個盤塊的指針。
這種方式就和鏈表一樣,當你要訪問這個文件的第n個盤塊的時候,需要從頭部開始查找。算是一個缺點吧。
2.顯示鏈接
這種方式把鏈接文件各個物理塊的指針顯示地存放在記憶體的一張鏈表中,該表在整個磁碟中僅設置一張。也把這個表稱為文件分配表(FAT)。
這樣做和上面相比,只不過是把查找過程放在了記憶體中,最後再去啟動磁碟。降低了訪問磁碟的次數。
FAT方式在文件較多的時候需要占用較大的記憶體空間。當過大的時候,記憶體不一定能夠存儲的下該表,且在一張較大的FAT表中查詢文件也是比較的慢。
3.索引組織方式
通過對FAT方式的改進,出現了索引組織方式。在我們打開某個文件的時候,只需要把該文件占用的盤塊編號調入記憶體即可。完全沒有必要將整個FAT調入記憶體。因此,出現了索引組織方式。基本思想:
1.為每個文件分配一個索引表,把分配給該文件的所有盤塊號都記錄在這個索引表中。
2.再建立一張索引表,用於組織1中的各個索引表,當然這種方式是針對於該文件過大的情況。
3.如果文件過大,還可以有多級索引。
像這種方式能夠大大加快對大型文件的查找速度,但是訪問一個盤塊的時候,需要啟動磁碟的次數隨著索引級數的增加而增多。尤其是對於一些小文件,還要單獨分配一個索引表,這並不是理想的效果。
為了能夠全面地照顧小、中、大以及特大型地作業,可以採取多種組織方式來構成文件的物理結構:
2.增量式索引組織方式
1.基本思想
設立不同等級的索引:
直接索引:對於小文件,通常採用直接索引。直接將文件占用的盤塊地址放入FCB中,可以直接從FCB中獲取該文件的盤塊的地址。
一次間址:對於中等大小的文件,可以採取單級索引的組織方式,直接從FCB中獲取該文件對應的索引表即可
二次/三次間址:對於大型文件,可以採取兩級或者三級索引的組織方式。
二、文件存儲空間管理
前面說的都是文件分配時候的組織方式,但是如何分配文件? 磁碟上哪些盤塊是可以被分配的呢?,這就涉及文件存儲空間的管理。下麵一起來看看吧!
1.空閑表法
空閑表法屬於連續分配方式,為每一文件分配一塊連續的存儲空間。即系統為外存上的所有空閑分區建立一張空閑表,每個空閑區對應一個空閑表項。
採用空閑表法給文件分配盤塊的時候,和記憶體空間的分配差不多,也就是採用一些演算法(最佳適應、首次適應等)進行分配,回收的時候也是按照和當前執行點的位置關係採取不同的方式回收。
2.空閑鏈表法
空閑鏈表法是將所有空閑盤區拉成一條空閑鏈。空閑鏈表法可以分成以下兩種形式:
1.空閑盤塊鏈
顧名思義,以盤塊為單位組成一張鏈表。長度較長
2.空閑盤區鏈
將若幹個盤塊作為一個區,鏈接起來,形成一張鏈表。長度較短
3.位示圖
位示圖是利用二進位的一位來表示磁碟中一個盤塊的使用情況。0代表盤塊空閑,1代表已經分配。磁碟上所有盤塊都有一個二進位位與之對應,這樣,所有盤塊所對應的位構成了一個集合。稱為位示圖。
文件這方面涉及的知識點,算是完結了。本文章主要講了文件物理組織方式以及盤塊的空間管理,我們下篇文章再見。
不驕不躁,保持學習