作業系統概念(高等教育出版社,第七版)複習——第十一章:檔案系統實現
第十一章 檔案系統實現
基礎知識
檔案系統實現(超重點)
一個磁碟可分為多個分割槽,或者一個卷可橫跨多個磁碟上的數個分割槽。分割槽可以是“生的”,即沒有檔案系統,也可以是“熟的”,即含有檔案系統。
目錄實現
線性列表、雜湊表
分配方法
連續分配:每個檔案在磁碟上佔有一個連續的塊。
連結分配:每個檔案是磁碟塊的連結串列,磁碟塊分佈在磁碟的任何一個地方,目錄包括檔案的第一塊的指標和最後一塊的指標。
索引分配:通過把所有指標放在一起(即通過索引塊)來解決。
連結分配的變種:建立檔案分配表(FAT)。通過多備份幾個FAT來增強可靠性。
連結分配提高了連續分配的外部碎片和大小宣告的問題。
索引分配提高了連結分配的可靠性。
索引分配包括連結方案、多層索引、組合方案。
空閒空間管理
位向量、連結串列、組、計數
位向量(點陣圖)
如果一塊為空閒,那麼其位為1,如果一塊已分配,其位為0.
第一個空閒塊=(值為0的字數)×(一個字的位數)+第一個值為1的位的偏移
連結串列
通過連結串列將空閒空間連線起來
組(grouping)
將n個空閒塊的地址存在第一個空閒塊中。這些塊中前n-1塊個確實為空,而最後一塊包含另外n個空閒塊的地址。
計數
記錄第一塊的地址和緊跟第一塊的連續的空閒塊的數量n
效率與效能
課後作業
2.
優點:根據指標可以找到位置,簡單有效。
缺點:如果不快取會導致大量的磁頭尋道時間。
6.
連續分配:
a. 初始地址加邏輯地址等於實體地址
b. 1
連結分配:
a. 根據連結串列依次尋找
b. 4
索引分配:
a. 獲取指向實體地址的指標
b. 2
10.
日誌檔案系統可防止系統崩潰時導致的資料不一致問題。對檔案系統元資料的更改都被儲存在一份單獨的日誌裡,當發生系統崩潰時可以根據日誌正確地恢復資料。除此之外,日誌使系統重新啟動時不必進行檔案系統的檢查,從而縮短了恢復時間。
思考題
檔案系統的目錄實現:
線性表:簡單;查詢需要線性搜尋,費時
雜湊表:搜尋快;會出現衝突;依賴雜湊表大小、雜湊函式
說明幾種檔案分配方式的思想、特點:
連續分配:
簡單,可以隨機存取,速度快,適合檔案系統不變動的情況,有外部碎片會浪費空間,檔案不能變大
連結分配:
簡單,沒有外部碎片,建立時無需宣告所需空間,需要空間儲存指標,不能隨機存取,可靠性低
索引分配:
隨機存取,建立時無需宣告所需空間,沒有外部碎片,浪費空間,索引塊的指標開銷通常大於連結分配的指標開銷
說明幾種磁碟空閒空間的管理方法的思想及特點(優點及缺點):
位向量:
位示圖空閒為1,已分配為0,儲存在磁碟上,檢索時裝入主存;或放在超級塊中。
簡單,容易獲得連續檔案,效率低。
連結串列:
連結串列的頭放在超級塊中。
不易得到連續空間,不佔用額外磁碟空間。
組:
建立一個類似於分割槽記憶體管理中的分割槽表;每個表項記錄第一塊的地址和與第一塊連續的空閒塊的數量。
容易找到連續的空間,需要額外的空間。
計數:
需要額外空間(磁碟上有一個“空閒盤塊表”);為磁碟上的每個空閒連續儲存空間中的磁碟塊建立一個表項。
適合連續檔案空間的連續分配。
為提高檔案系統的效能,可採用哪些措施:
磁碟cache
同步讀寫與非同步讀寫結合
優化順序訪問
採用立即釋放與提前預讀順序
讓磁碟塊在記憶體中駐留足夠長時間
通過將記憶體部分作為虛擬磁碟或RAM磁碟來提高PC效能
儘量減少磁碟的訪問頻率