作業系統核心原理 6 外存管理(下)檔案系統

2022-01-11 09:13:41 字數 2494 閱讀 4517

作業系統是乙個魔術師,其提供給使用者的就是各種幻想:抽象。程序抽象的是cpu,虛擬記憶體抽象的是記憶體,對於磁碟來說,作業系統提供給使用者的幫助就是在磁碟外面包裹一層容易使用的抽象,使用者直接與這層抽象打交道,而無需了解磁碟的技術細節。在作業系統中,這層為磁碟提供的抽象就是:檔案系統

檔案系統是作業系統為磁碟和使用者之間提供的乙個抽象,它是乙個子虛烏有的,看不見摸不著的介面,如下圖所示:

(1)檔案系統使得使用者能夠很方便的使用磁碟:將使用者從資料存放的細節中解放出來,使用者不需要知道內容存放在什麼地方,也不需要知道如何存放,更不需要知道磁碟到底是如何工作的。

(2)簡單地說,檔案系統將其接觸的磁碟物理特性轉換為使用者看到的路徑名和檔名。使用者對磁碟進行訪問只需要給出檔名和路徑名即可,而無需知道磁柱、磁軌、扇面、資料塊等資訊

(3)檔案系統的主要特性就是儲存大量的資訊,多個程序可以同時訪問乙個檔案,程序結束也不會影響檔案的持續存在

(1)位址獨立

乙個檔案在產生的時候無需擔心其存放的磁碟位址,即檔案資料的產生與檔案將來存放的磁碟位址相互獨立。

(2)位址保護

位址保護需要對檔案的訪問進行一定的限制,即不是任何人都可以訪問任何檔案。

difference:檔案系統的位址保護與記憶體管理下的位址保護不同,記憶體管理下位址保護指的是乙個程序不能訪問另乙個程序空間,而檔案系統下的位址保護不是乙個檔案不能訪問另乙個檔案空間,而是乙個檔案的訪問時有限制的。

(1)檔案命名

檔名可以便於訪問乙個檔案,這個檔名既可以是英語名、中文名,也可以是影象名。當使用者給出乙個檔名,作業系統就可以根據這個名字找到對應檔案的內容。具體來說,就是找到該檔案存放在磁碟上的所有資料塊

作業系統將檔名翻譯為其資料塊在磁碟上存放的位址,由於磁碟的定址單位是扇面,而這些磁碟位址實際上就是乙個個的扇面號。

(2)副檔名

(3)內容定址

除了給出檔名外,還可以給出檔案的內容,供作業系統查詢使用。資料庫系統是這種實現方式的典型應用。

(4)檔案訪問

①順序訪問:從開頭開始訪問,按照先來後到的順序讀取資料。

②隨機訪問:可以按照任意順序讀取資料記錄,就像我們看***一樣可以隨機選擇想要**的段落。

(5)檔案屬性

每個檔案除了乙個檔名外,還有許多資訊也是我們感興趣的,所以,檔案還擁有一些屬性。不同的作業系統,檔案的屬性種類和數量都不同,但每一種屬性都有自己的用途,下表列出了常見的檔案屬性:

(6)檔案操作

可以對檔案進行操作有:建立/刪除、開啟/關閉、讀寫新增、尋找訪問位置、讀取屬性/設定屬性、重新命名等等。

我們可以對檔案進行讀寫操作,那麼給乙個檔名,作業系統是如何知道從什麼地方讀取檔案內容的呢?換句話說,檔案在磁碟上的什麼位置,作業系統是如何知道的呢?這需要乙個資料結構來記錄每個檔案在磁碟上的位址,這個資料結構就是資料夾

資料夾也稱為目錄夾(folder),它的角色就是跟蹤檔案,裡面存放的是從檔案到檔案所在磁碟的位址的對映,即「檔名→檔案所在磁碟上的位址」。資料夾對於檔案來說,就相當於從虛擬位址到實際位址的一種翻譯機制。

由於資料夾裡面可以有子資料夾,因此就形成了乙個層次結構,這個層次結構的頂端就是根資料夾(也稱為根目錄),如下圖所示:

根目錄是乙個檔案系統的總起點,它在作業系統啟動的時候載入到記憶體。從根目錄開始,該檔案系統裡面的所有檔案都可以找出來。

作業系統為使用者提供的檔案系統介面就是檔案系統呼叫,使用者可以在程式中通過這些系統呼叫來對檔案系統進行讀寫操作。這些系統呼叫包括:開啟檔案、關閉檔案、讀檔案內容、寫檔案內容等等。

下圖展示了乙個c語言編寫的使用檔案系統呼叫實現檔案拷貝的簡單例項程式:

上述檔案拷貝程式實現的是開啟原始檔和目標檔案,然後迴圈往復地將原始檔內容讀取到乙個緩衝區,然後將緩衝區的內容寫到輸出目標檔案裡。當拷貝結束後,關閉原始檔和目標檔案。

鄒恒明,《作業系統之哲學原理》,機械工業出版社

出處:

作業系統核心原理 5 記憶體管理(下) 段式記憶體管理

分頁系統存在的乙個無法容忍,同時也是分頁系統無法解決的乙個缺點就是 乙個程序只能占有乙個虛擬位址空間。在此種限制下,乙個程式的大小至多只能和虛擬空間一樣大,其所有內容都必須從這個共同的虛擬空間內分配。分段管理就是將乙個程式按照邏輯單元分成多個程式段,每乙個段使用自己單獨的虛擬位址空間 如此,乙個段占...

作業系統運轉機制核心原理

pc的外圍硬體系統構成趨近固定,因此可以輕易的在作業系統內部劃分核心空間與使用者空間,系統核心與硬體裝置驅動位於核心空間,使用者程式位於使用者空間。核心空間是固定的通過新增預定義的介面,執行中的作業系統可以通過模組內部定義約定知道這些模組究竟是幹什麼的。在需要使用某些功能的時候,能夠根據預定義的操作...

作業系統原理 章節測試 作業系統原理

第一章 單元測試 1 單選題 允許多個使用者將若干個作業提交給計算機系統集中處理的作業系統稱為 選項 a 分時作業系統 b 實時作業系統 c 網路作業系統 d 批處理系統 答案 批處理系統 2 單選題 是指兩個或兩個以上的活動或事件在同一時間間隔內發生。選項 a 共享 b 並行 c 併發 d 同步 ...