操作系統精髓與設計原理讀書筆記8

文件系統

文件與文件系統

文件的存儲介質

磁碟空間管理

文件控制塊及文件目錄

文件的物理結構

文件系統的實現

文件 是 對磁碟的 抽象

所謂文件 是指 一組帶標識(標識即為文件名)的、在邏輯上有完整意義的信息項的序列

信息項:構成文件內容的基本單位(單個位元組,或多個位元組),各信息項之間具有順序關係

文件內容的意義:由文件建立者和使用者解釋

操作系統角度:怎樣組織、管理文件?文件的描述、分類,文件目錄的實現,存儲空間的管理

文件的物理地址,磁碟實際運作方式(與設備管理的介面),文件系統性能

用戶角度:文件系統如何呈現在用戶面前,一個文件的組織,如何命名?如何保護文件?可以實施的操作?

文件系統

操作系統中統一管理信息資源的一種軟體,管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,並且方便用戶使用

統一管理磁碟空間,實施磁碟空間的分配與回收

實現文件的按名存取 名字空間 namespace映射 磁碟空間

實現文件信息的共享,並提供文件的保護、保密手段

向用戶提供一個方便使用、易於維護的介面,並向用戶提供有關統計信息

提高文件系統的性能

提供與I/O系統的統一介面

按文件性質和用途分類(UNIX)

普通文件;目錄文件;特殊文件(設備文件);管道文件;套接字

普通文件(regular)

包含了用戶的信息,一般為ASCII或二進位文件

目錄文件(directory)

管理文件系統的系統文件

特殊文件(special file)

字元設備文件:和輸入輸出有關,用於模仿串列I/O設備,例如終端,印表機,網卡等

塊設備文件:磁碟

流式文件:構成文件的基本單位是字元

文件是有邏輯意義、無結構的一串字元的集合

記錄式文件:文件由若干個記錄組成,可以按記錄進行讀、寫、查找等操作

每條記錄有其內部結構

典型的存儲介質

磁碟(包括固態盤SSD)、磁帶、光碟、U盤、……

物理塊(塊block、簇cluster)

信息存儲、傳輸、分配的獨立單位

存儲設備劃分為大小相等的物理塊,統一編號

任何時刻只有一個磁頭處於活動狀態:輸入輸出數據流以位串形式出現

物理地址形式: 磁頭號(盤面號)、磁軌號(柱面號)、扇區號

扇區:標題(10位元組)、數據(512位元組)、ECC糾錯信息(12-16位元組)

一次訪盤請求:

讀/寫,磁碟地址(設備號,柱面號,磁頭號,扇區號),內存地址(源/目)

完成過程由三個動作組成:

尋道(時間):磁頭移動定位到指定磁軌

旋轉延遲(時間):等待指定扇區從磁頭下旋轉經過

數據傳輸(時間):數據在磁碟與內存之間的實際傳輸

磁碟空間管理

點陣圖法

用一串二進位位反映磁碟空間中分配使用情況,每個物理塊對應一位,分配物理塊為0,否則為1

申請物理塊時,可以在位示圖中查找為1的位,返回對應物理塊號

歸還時,將對應位轉置1

空閑塊表

將所有空閑塊記錄在一個表中,即空閑塊表

主要兩項內容:起始塊號,塊數

空閑塊鏈表

把所有空閑塊鏈成一個鏈

擴展:成組鏈接法

文件控制塊(File Control Block)

為管理文件而設置的數據結構,保存管理文件所需的所有有關信息

(文件屬性或元數據)

常用屬性

文件名,文件號,文件大小,文件地址,創建時間,最後修改時間,最後訪問時間,保護,口令,創建者,當前擁有者,文件類型,共享計數,各種標誌(只讀、隱藏、系統、歸檔、ASCII/二進位、順序/隨機訪問、臨時文件、鎖)

路徑名(文件名)

–絕對路徑名:從根目錄開始

–相對路徑名:從當前目錄開始

一個文件的信息存放在若干不連續物理塊中

系統為每個文件建立一個專用數據結構—索引表,並將這些物理塊的塊號存放在該索引表中

索引表就是磁碟塊地址數組,其中第i個條目指向文件的第i塊

磁碟分區(partition):把一個物理磁碟的存儲空間劃分為幾個相互獨立的部分,稱為分區

文件卷(volume):磁碟上的邏輯分區,由一個或多個物理塊(簇)組成

一個文件卷可以是整個磁碟 或 部分磁碟 或 跨盤(RAID)

同一個文件卷中使用同一份管理數據進行文件分配和磁碟空閑空間管理,不同的文件卷中的管理數據是相互獨立的

一個文件卷上:包括文件系統信息、一組文件(用戶文件、目錄文件)、未分配空間

塊(Block)或 簇(Cluster) : 一個或多個(2的冪)連續的扇區,可定址數據塊

格式化(format):在一個文件卷上建立文件系統,即建立並初始化用於文件分配和磁碟空閑空間管理的管理數據

推薦閱讀:

【原著解讀】丹尼特的《心靈的演化》:兩種奇怪的倒置推理
linux忘記root密碼怎麼辦?
服務發現
愚人節,說說假新聞和謠言,它們傳播得比真相更快
給長者的一封信

TAG:操作系統 | 計算機科學 |