作業系統學習筆記(四) 檔案系統

2021-09-21 01:21:03 字數 1900 閱讀 8387

磁碟的0號扇區稱為主引導記錄mbr,用來引導計算機。在mbr的結尾是分割槽表,該錶給出了每個分割槽的起始和結束位址。表中的乙個分割槽被標記為活動分割槽。乙個可能的檔案系統布局。

檔案儲存實現的關鍵問題是記錄各個檔案分別用到哪些磁碟塊

連續分配

優點

鍊錶分配

為每個檔案構造磁碟塊鍊錶,每個塊的第乙個字作為指向下一塊的指標,塊的其他部分存放資料

採用記憶體中的表進行鍊錶分配

i節點目錄檔案記載了(檔名 ,inode)對,訪問檔名時會訪問到inode,inode與檔名的鏈結使用硬鏈結

inode中的內容

目錄系統的主要功能是把ascii檔名對映成定位檔案資料所需的資訊

加快大型目錄的查詢速度可以使用雜湊表,根據檔名進行雜湊

只需知道inode的方法即可

軟鏈結與硬鏈結

軟鏈結更像windows的快捷方式,其中儲存了被鏈結檔案的絕對路徑

硬鏈結則像是檔案的別名

基本想法是儲存乙個用於記錄系統下一步將要做什麼的日誌,這樣當系統在完成它們即將完成的任務前崩潰時,重新啟動後,可以通過檢視日誌,獲取崩潰前計畫完成的任務,並完成他們

對於要進行的檔案操作,日誌檔案系統首先寫乙個日誌項,列出要完成的動作。然後日誌項被寫入磁碟,只有當日誌項已經被寫入,對檔案的操作才可以進行。當所有的操作成功完成後,擦除日誌項。如果系統這時崩潰,系統恢復後,檔案系統可以通過檢查日誌來檢視是不是有未完成的操作。如果有,可以重新執行未完成的操作,直到對檔案的操作完成。

要關注的問題:

物理轉儲

從磁碟的第0塊開始,將全部磁碟塊按序輸出到磁帶上,直到最後一塊複製完畢

優點簡單快速

缺點

邏輯轉儲

從乙個或幾個指定的目錄開始,遞迴地轉儲其自給定基準日期後有所更改的全部檔案和目錄

unix使用fsck,windows使用scandisk進行一致性檢查。

一致性檢查分為塊的一致性和檔案的一致性檢查。

塊的一致性檢查

在檢查塊的一致性時,程式構造兩張表,每張表中為每個塊設立乙個計數器,都初始化為0。第乙個表中的計數器跟蹤該塊在檔案中的出現次數,第二個表中的計數器跟蹤該塊在空閒表或空閒點陣圖中的出現次數。如果檔案系統一致,則每一塊或者再第乙個計數器中為1,或者在第二個計數器中為1。

檔案的一致性檢查

檢查目錄系統,每個檔案對應於乙個計數器,程式從根目錄開始,遞迴搜尋每個目錄,對於目錄中的每個檔案,將檔案計數器加1。由於存在硬鏈結,乙個檔案可能出現在多個目錄中,而對於符號鏈結不計數。程式完成後,與儲存在檔案i節點中的鏈結數比較是否一致。

快取記憶體

快取記憶體指的是一系列的塊,它們在邏輯上屬於磁碟,但實際上基於效能的考慮被放在記憶體中。檢查全部讀請求,如果需要讀取的塊在快取記憶體中命中,則讀取;否則從磁碟調入快取記憶體。快取記憶體的置換演算法與頁面置換演算法相似,比如老化演算法。

塊提前讀

在需要用到塊之前,提前將其讀入快取記憶體,從而提高命中率,對於順序讀取特別有用。

減少磁碟臂運動

把有可能順序訪問的塊放在一起,最好在同一柱面上,從而減少磁碟臂的移動次數。

unix中根目錄的i節點存放在磁碟上的固定位置,剩餘的路徑搜尋依靠檔名和i節點號。通過i節點號來定位i節點是很方便的,因為每個i節點在磁碟上都有固定的位置。

檔案系統學習3 檔案系統相關操作流程

前文中講到了檔案系統有哪幾類操作,這裡對沒類操作檔案系統是如何定址,如果讀寫的進行乙個詳細的說明。1 目錄樹的讀取 所有對檔案的操作,給使用者看來第一步就是得知道這個檔案的目錄,所以首先就需要讀取目錄。每個目錄都是乙個檔案,該檔案存放該目錄下所有檔案的相關資訊,同樣該檔案也有對應的innode。簡答...

作業系統 5 檔案系統

檔案和檔案系統 檔案 資料的有序集合,使用者儲存資訊於輔存的基本邏輯單位。檔案系統的功能 提供了對資料的儲存手段 提供了對檔案操作的功能介面 維護檔案屬性 檔案系統中的常用術語 域 基本資料單元,乙個域保護乙個值,如名字 日期或感測器讀取的數值等。記錄 一組相關域的集合,長度固定或可變,如一條記錄可...

檔案系統學習5 檔案系統IO子系統

io系統 01 io子系統 io系統 02 使用者態的檔案io操作 io系統 03 虛擬檔案系統 vfs io系統 04 節點路徑搜尋 io系統 05 open流程分析 io系統 06 因open建立的結構體關係 io系統 07 io寫流程分析 io系統 08 io讀流程分析 io系統 09 直接i...