第四章 檔案系統
阿新 • • 發佈:2021-10-24
所有計算機程式都需要儲存和檢索資訊。
直接在程序的虛擬地址空間儲存資訊會遇到幾個問題
1. 虛擬地址空間容量小 |
---|
2. 虛擬空間資訊不能長期儲存 |
3. 不能多個程序同時訪問同一資訊 |
因此長期儲存資訊需要滿足三個基本要求:
- 能夠儲存大量資訊
- 資訊能夠長期(幾天甚至幾年)儲存
- 能使多個程序能夠共享資訊
磁碟天然適合用作長期儲存大量資料(近年來有被固態硬碟代替的趨勢)。 此處先把磁碟當做一個大陣列,有如下兩個基本操作:
- 讀塊K
- 寫塊K
檔案系統是作業系統中負責檔案的構造,訪問, 保護,實現的內容。本章前兩節介紹檔案的邏輯結構, 後面介紹檔案的物理結構。
4.1 檔案
4.1.1 檔案命名
任何一種抽象機制最重要的特性就是對管理物件的命名方式。
檔案的具體命名規則在不同的作業系統中的實現是不同的。
- Unix作業系統區分大小寫,而MS_DOS作業系統不區分.
- Unix作業系統副檔名寬鬆,但MS-DOS關注副檔名
4.1.2 檔案結構
檔案系統可分為三種構造方式:位元組序列,記錄序列,樹。
- 位元組序列。(Unix和Windows)(靈活) 作業系統不關心也不知道檔案內容是什麼, 所看到的就是位元組。其檔案內容的含義只在使用者程式中解釋。
- 記錄序列。(早期大型計算機)檔案由一組有結構的相同長度的記錄組成。
- 樹。(現代大型資料計算機) 檔案由一組不同長度的記錄組成的樹組成。記錄的固定部分有一個鍵欄位。
4.1.3 檔案型別
UNIX支援包括普通檔案(包含使用者資訊), 目錄(管理檔案系統結構), 字元特殊檔案(序列I/O類裝置), 塊特殊檔案(磁碟)在內的多種檔案型別。
普通檔案又被分為
- ASCII檔案。 可以顯示和列印,用文字編輯器編輯
- 二進位制檔案。 難以理解,只有特殊的程式瞭解其內部結構。例如可執行二進位制檔案。
4.1.4 檔案訪問
- 順序訪問(早期只有這一種)
- 隨機訪問
4.1.5 檔案屬性
檔案除檔名還有檔案資料以外還有檔案屬性。
與檔案保護有關的:
- 保護。 誰可以訪問檔案,以什麼方式訪問檔案
- 口令。 訪問檔案需要的口令
- 建立者。 建立檔案的使用者ID
- 所有者。 當前所有者
控制或啟用某些特殊屬性: - 只讀標誌
- 隱藏標誌
- 系統標誌
- 存檔標誌
等等
4.1.6 檔案操作
- create:建立不包含任何資料的檔案,並設定檔案屬性。
- delete: 釋放檔案磁碟空間
- open: 把檔案屬性和磁碟地址表裝入記憶體以方便後續操作
- close: 刪除記憶體中的檔案屬性和磁碟地址表
- read:(指明資料大小和讀入記憶體地址)
- write: 從檔案當前位置寫入資料
- append:在檔案尾寫入資料
- seek: 設定檔案位置指標
- rename:重新命名檔案
4.2 目錄
檔案系統提供目錄記錄檔案的位置。
目錄按結構可分為:
- 一級目錄結構:(早期計算機,嵌入式)(尋找檔案困難)
- 層次目錄結構
目錄操作
- create: 建立目錄結構
- delete: 刪除目錄,只有空目錄可被刪除
- opendir : 相當於開啟檔案
- closedir: 關閉目錄釋放使用者表空間
- link: (硬連結)指定路徑名和檔名,建立一個連結
- unlink: 考慮硬連結的刪除(硬連結更有效, 軟連線更靈活)