計算機操作系統(第四版)之文件管理、磁盤存儲器的管理要點梳理


文件管理


在操作系統中增加文件管理功能,專門管理在外存上的文件,並把對文件的存取、共享和保護等手段提供給用戶。

文件和文件系統

文件系統的管理功能,是通過把它所管理的程序和數據組織成一系列文件的方法來實現的。

文件系統的層次結構

文件系統的模型可分爲三個層次:最底層是對象及其屬性,中間層是對對象進行操縱和管理的軟件集合,最高層是文件系統提供給用戶的接口。

文件的邏輯結構

1)文件的邏輯結構。這是從用戶觀點出發所觀察到的文件組織形式。
2)文件的物理結構,又稱爲文件的存儲結構,這是指系統將文件存儲在外存上所形成的存儲組織形式,是用戶不能看見的。

文件目錄

文件共享

文件保護


磁盤存儲器


外存的組織方式

文件的物理結構直接與外存的組織方式有關。對於不同的外存組織方式,將形成不同的文件物理結構。目前常用的外存組織方式有:
1)連續組織方式。
2)鏈接組織方式.
3)索引組織方式。

文件存儲空間的管理

爲了實現前面任何一種文件組織方式,都需要爲文件分配盤塊,因此必須知道磁盤上哪些盤塊是可用於分配的。故在文件分配磁盤時,除了需要文件分配表外,系統還應爲可分配存儲空間設置相應的數據結構,即設置一個磁盤分配表,用於記住可供分配的存儲空間情況。此外,還應提供對盤塊進行分配和回收的手段。不論哪種分配和回收方式,存儲空間的基本分配單位都是磁盤塊而非字節。

空閒表法和空閒鏈表法

  1. 空閒表法。
    1)空閒表。
    空閒表法屬於連續分配方式,它與內存的動態分配方式雷同。
    即系統也爲外存上的所有空閒區建立一張空閒表,每個空閒區對應於一個空閒表項,其中包括表項序號、該空閒區的第一個盤塊號、該區的空閒盤塊數等信息。再將所有空閒區按其起始盤塊號遞增的次序排列。
    2)存儲空間的分配與回收。
    空閒盤區的分配與內存的動態分配類似,同樣是採用首次適應算法、循環首次適應算法等。
    系統在對用戶所釋放的存儲空間進行回收時,也採取類似於內存回收的方法,即要考慮回收區是否與空閒表中插入點的前區和後區相鄰接,對相鄰接者應予以合併。
    應該說明,在內存分配上,雖然很少採用連續分配方式,然而在外存的管理中,由於這種分配方式具有較高的分配速度,可減少訪問磁盤的 I/O 頻率,故它在諸多分配方式中仍佔有一席之地。例如,在前面所介紹的對換方式中,對對換空間一般都採用連續分配方式。對於文件系統,當文件較小(1~4 個盤塊)時,仍採用連續分配方式,爲文件分配相鄰接的幾個盤塊;當文件較大時,便採用離散分配方式。另外,對於多媒體文件,爲了能減少磁頭的尋道時間,也採用連續分配方式。
  2. 空閒鏈表法。
    1)空閒盤塊鏈。
    這是將磁盤上的所有空閒空間,以盤塊爲單位拉成一條鏈。當用戶因創建文件而請求分配存儲空間時,系統從鏈首開始,依次摘下適當數目的空閒盤塊分配給用戶。當用戶因刪除文件而釋放存儲空間時,系統將回收的盤塊依次插入空閒盤塊鏈的末
    尾。
    2)空閒盤區鏈。
    這是將磁盤上的所有空閒盤區(每個盤區可包含若干個盤塊)拉成一條鏈。在每個盤區上除含有用於指示下一個空閒盤區的指針外,還應有能指明本盤區大小(盤塊數)的信息。分配盤區的方法與內存的動態分區分配類似,通常採用首次適應算法。在回收盤區時,同樣也要將回收區與相鄰接的空閒盤區相合並。

位示圖法

  1. 位示圖。
    位示圖是利用二進制的一位來表示磁盤中一個盤塊的使用情況。當其值爲“0”時,表示對應的盤塊空閒;爲“1”時,表示已分配。這樣,由所有盤塊所對應的位構成一個集合,稱爲位示圖。通常可用 m × n 個位數來構成位示圖,並使 m × n 等於磁盤的總塊數。位示圖也可描述爲一個二維數組 map[m, n]。
    這裏寫圖片描述
  2. 盤塊的分配。
    根據位示圖進行盤塊分配時,可分三步進行:
    1)順序掃描位示圖,從中找出一個或一組其值爲“0”的二進制位(“0”表示空閒時)。
    2)將所找到的一個或一組二進制位轉換成與之相應的盤塊號。假定找到的其值爲“0”的二進制位位於位示圖的第 i 行、第 j 列,則其相應的盤塊號應按下式計算:
    b = n * (i - 1) + j;
    式中,n 代表每行的位數。
    3)修改位示圖,令 map[i,j] = 1。
  3. 盤塊的回收。
    盤塊的回收分兩步:
    1)將回收盤塊的盤塊號轉換成位示圖中的行號 i 和列號 j 。轉換公式爲:
    i = (b - 1) / n + 1;
    j = (b - 1) % n + 1;
    2)修改位示圖。令 map[i,j] = 0。

位示圖常用於微型機和小型機中。

成組鏈接法

空閒表法和空閒鏈表法都不適用於大型文件系統,因爲這會使空閒表或空閒鏈表太長。在 UNIX 系統中採用的是成組鏈接法,這是將上述兩種方法相結合而形成的一種空閒盤塊管理方法,它兼備了上述兩種方法的優點而克服了兩種方法均有的表太長的缺點。

提高磁盤I/O速度的途徑

其中最主要的技術便是磁盤高速緩存。

提高磁盤可靠性的技術

容錯技術是通過在系統中設置冗餘部件的辦法,來提高系統可靠性的一種技術。
磁盤容錯技術往往也被人們稱爲系統容錯技術 SFT。可把它分成三個級別:第一級(SFT-I)是低級磁盤容錯技術;第二級(SFT-II)是中級磁盤容錯技術;第三級是系統容錯技術,它基於集羣技術實現容錯。

數據一致性控制


繼續加油~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章