天天看點

作業系統之檔案管理(上)一、檔案與檔案系統

一、檔案與檔案系統

1.1 檔案是什麼

  • 檔案是對磁盤的抽象
  • 所謂檔案是指一組帶辨別(辨別即為檔案名)的、在邏輯上有完整意義的資訊項的序列。
  • 資訊項:構成檔案内容的基本機關(單個位元組,或多個位元組),各資訊項之間具有順序關系
  • 檔案内容的意義:由檔案建立者和使用者解釋
  • 作業系統之檔案管理(上)一、檔案與檔案系統

1.2 如何設計一個檔案系統

這裡先看檔案管理的需求:

  • 從使用者角度

    檔案系統是如何呈現在使用者面前:

*   一個檔案的組織      
    • 如何命名
    • 如何保護檔案
    • 可以實施的操作
  • 從作業系統角度:怎樣組織、管理檔案
*   檔案的描述、分類      
  • 檔案目錄的實作
  • 存儲空間的管理
  • 檔案的實體位址
  • 磁盤實際運作方式(與裝置管理的接口)
  • 檔案系統的性能

1.3 檔案系統

  • 作業系統中統一管理資訊資源的一種軟體,管理檔案的存儲、檢索、更新,提供安全可靠的共享和保護手段,并且友善使用者使用
  • 檔案系統要完成哪些任務

1、統一管理磁盤空間,實施磁盤空間的配置設定與回收

2、實作檔案的按名存取:名字空間–映射–>磁盤空間

3、實作檔案資訊的共享,并提供檔案的保護、保密手段

4、向使用者提供一個友善使用、易于維護的接口,并向使用者提供有關統計資訊

5、提高檔案系統的性能

6、提供與IO系統的統一接口

1.4 檔案的分類

按檔案性質和用途分類(

UNIX

),一般分為普通檔案、目錄檔案、特殊檔案(裝置檔案)、管道檔案、套接字

  • 普通檔案

    即使用者自己建立的檔案,包含了使用者的資訊,一般為

    ASCII

    或二進制檔案
  • 目錄檔案

    管理檔案系統的系統檔案

  • 特殊檔案

    字元裝置檔案:和輸入輸出有關,使用者模仿串行

    I/O

    裝置,例如終端、列印機、網卡等。

    塊裝置檔案:磁盤

1.5 檔案的邏輯結構

  • 無結構的流式檔案

    對檔案内資訊不再劃分機關,它是依次的一串字元流構成的檔案。

  • 有結構的記錄式檔案

    使用者把檔案内的資訊按邏輯上獨立的含義劃分資訊機關,每個機關稱為一個邏輯記錄(簡稱記錄)。

  • 作業系統之檔案管理(上)一、檔案與檔案系統
  • **說明:**這裡是從使用者角度看檔案,由使用者的通路方式确定,這裡給出了三種邏輯結構,還可以組織成堆、順序、索引、索引順序、散列等結構。第一種是以位元組為機關的流式結構,第二種是一種記錄式檔案結構,最後一種是樹形結構。

1.6 典型的檔案邏輯結構與檔案存取

流式檔案:構成檔案的基本機關是字元

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

記錄式檔案:檔案由若幹記錄組成,可以按記錄進行讀寫、查找等操作。每條記錄有其内部結構

檔案的邏輯結構與檔案存取之間的關系

順序存取(通路)

随機存取:提供讀寫位置(目前位置)。如UNIX的seek操作。

1.7 檔案的存儲媒體

1.7.1 存儲媒體與實體塊

  • 典型的存儲媒體

    磁盤(包括固态盤

    SSD

    )、錄音帶、CD光牒、

    U

    盤、…
  • 實體塊(塊

    block

    、簇

    cluster

    資訊存儲、傳輸、配置設定的獨立機關

    儲存設備劃分為大小相等的實體塊,統一編号

1.7.2 典型的磁盤結構

普通磁盤構造及工作原理

作業系統之檔案管理(上)一、檔案與檔案系統
  • 磁道(Track)
  • 柱面(Cylinder)
  • 扇區(Sector)
  • 磁頭(Heads)
  • 盤片(Platters)
  • 每個碟片都有兩面,是以也會相對應每碟片有2個磁頭。
  • 作業系統之檔案管理(上)一、檔案與檔案系統
  • A:磁道
  • B:扇面
  • C:扇區
  • D:簇(扇區組)

    在硬碟上定位某一資料記錄位置—C扇區,使用了三維定位。

  • 作業系統之檔案管理(上)一、檔案與檔案系統

1.7.3 磁盤通路

磁盤工作時盤片在高速旋轉,機械手臂驅動磁頭沿着徑向移動,在磁道上讀取所需要的資料。

一次通路磁盤的請求:讀寫、磁盤位址(裝置号、柱面号、磁頭号、扇區号),記憶體位址(源/目)。完成過程由三個動作組成:

  1. 尋道(時間):磁頭移動定位到指定磁道
  2. 旋轉延遲(時間):等待指定扇區從磁頭下旋轉經過
  3. 資料傳輸(時間):資料在磁盤與記憶體之間的實際傳輸

1.7.4 磁盤空間管理

位圖

用一串二進制位反映磁盤空間中配置設定使用情況,每個實體塊對應一位,配置設定的實體塊為0,否則為1。

申請實體塊時,可以在位示圖中查找1的位,傳回對應的實體塊号

歸還時,将對應位轉置1。

空閑塊表

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

主要兩項内容:起始塊号,塊數

空閑塊連結清單

把所有空閑塊鍊成一個表

擴充:成組連結法

磁盤位址與塊号的轉換

作業系統之檔案管理(上)一、檔案與檔案系統

成組連結法設計思想

作業系統之檔案管理(上)一、檔案與檔案系統

**說明:**左上角的是一個專用塊,表示一些有用資訊,而右邊大括号中的都是空閑塊。所有空閑塊我們分成了若幹組,典型的是100塊是一組,最後一個空閑組隻有99個空閑塊。專用塊中有20個空閑塊号,分别對應右邊的空閑塊組。每次要使用檔案的時候,就從專用塊中挑選空閑塊,一般從801開始配置設定。820中的第一塊實際上是記錄了後面一塊800中空閑塊的空閑塊号和總的空塊的數量,後面的以此類推。最後一個組中的0則表示最後一組的标志。

成組連結法:配置設定算法

配置設定一個空閑塊

L

單元(空閑塊數)

  • 空閑塊數 > 1 , i = L + 空閑塊數

    從i單元得到一個空閑塊号;

    把該塊配置設定給申請者;

  • 空閑塊數減1
  • 空閑塊數 = 1

    , 取出

    L + 1

    單元内容(一組的第一塊号或

    );

    值 = 0

    無空閑塊,申請者等待

    其值不等于零,把該塊内容複制到專用塊

    該塊配置設定給申請者;

把專用塊内容讀到記憶體

L

開始的區域。

成組連結清單法:回收算法

歸還一塊

L

單元的空閑塊數

  • 空閑塊數 < 100

    空閑塊數加一;

    j := L + 空閑塊數

    歸還塊号填入

    j

    單元
  • 空閑塊數 = 100

    , 則把記憶體中登記的資訊寫入歸還塊中;

    把歸還塊号填入

    L+ 1

    單元;

    L

    單元置成

    1

繼續閱讀