160.磁盤存儲器的管理


 磁盤存儲器的管理

 

8.1  外存的組織方式

  如前所述,文件的物理結構直接與外存的組織方式有關。對於不同的外存組織方式,將形成不同的文件物理結構。目前常用的外存組織方式有:

  (1) 連續組織方式。

  (2) 鏈接組織方式。

  (3) 索引組織方式。

8.1.1  連續組織方式

  連續組織方式又稱連續分配方式,要求為每一個文件分配一組相鄰接的盤塊。例如,第一個盤塊的地址為b,則第二個盤塊的地址為b+1,第三個盤塊的地址為b+2,…。通常,它們都位於一條磁道上,在進行讀/寫時,不必移動磁頭。在采用連續組織方式時,可把邏輯文件中的記錄順序地存儲到鄰接的各物理盤塊中,這樣所形成的文件結構稱為順序文件結構,此時的物理文件稱為順序文件。

圖8-1  磁盤空間的連續組織方式

  連續組織方式的主要優點有:

  (1) 順序訪問容易。

  (2) 順序訪問速度快。

  連續組織方式的主要缺點如下:

  (1) 要求為一個文件分配連續的存儲空間。

  (2) 必須事先知道文件的長度。

  (3) 不能靈活地刪除和插入記錄。

  (4) 對於那些動態增長的文件。

8.1.2  鏈接組織方式

  如果可以將文件裝到多個離散的盤塊中,就可消除連續組織方式的上述缺點。在采用鏈接組織方式時,可為文件分配多個不連續的盤塊,再通過每個盤塊上的鏈接指針,將同屬於一個文件的多個離散的盤塊鏈接成一個鏈表,由此所形成的物理文件稱為鏈接文件。鏈接組織方式的主要優點是:

  (1) 消除了磁盤的外部碎片,提高了外存的利用率。

  (2) 對插入、刪除和修改記錄都非常容易。

  (3) 能適應文件的動態增長,無需事先知道文件的大小。

 

  1. 隱式鏈接

  在采用隱式鏈接組織方式時,在文件目錄的每個目錄項中,都須含有指向鏈接文件第一個盤塊和最后一個盤塊的指針。

 

圖8-2  磁盤空間的鏈接式分配

 

  2. 顯式鏈接

  這是指把用於鏈接文件各物理塊的指針顯式地存放在內存的一張鏈接表中。該表在整個磁盤中僅設置一張,如圖8-3所示。

 

圖8-3  顯式鏈接結構

 

8.1.3  FAT技術

  1.  FAT12

  1) 早期的FAT12文件系統

  FAT12是以盤塊為基本分配單位的。由於FAT是文件系統中最重要的數據結構,為了安全起見,在每個分區中都配有兩張相同的文件分配表FAT1和FAT2。在FAT的每個表項中存放下一個盤塊號,它實際上是用於盤塊之間的鏈接的指針,通過它可以將一個文件的所有的盤塊鏈接起來,而將文件的第一個盤塊號放在自己的FCB中。

 

圖8-4  MS-DOS的文件物理結構

 

  2) 以簇為單位的FAT12文件系統

  稍加分析便可看出,如果把每個盤塊(扇區)的容量增大n倍,則磁盤的最大容量便可增加n倍。但要增加盤塊的容量是不方便和不靈活的。為此,引入了簇(cluster)的概念。

 

  2.  FAT16  

  FAT12對磁盤容量限制的原因在於, FAT12表中的表項有限制,亦即最多只允許4096個。這樣,隨着磁盤容量的增加,必定會引起簇的大小和簇內碎片也隨之增加。

 

  3.  FAT32

  由於FAT16表的長度只有65 35項,隨着磁盤容量的增加,簇的大小也必然會隨之增加,為了減少簇內零,也就應當增加FAT表的長度,為此需要再增加FAT表的寬度,這樣也就由FAT16演變為FAT32。

 

圖8-5  FAT中簇的大小與最大分區的對應關系

 

8.1.4  NTFS的文件組織方式

  1. NTFS新特征

  NTFS(New Technology File System)是一個專門為Windows NT開發的、全新的文件系統,並適用於Windows 2000/XP及后續的Windows OS。

  2. 磁盤組織

  NTFS是以簇作為磁盤空間分配和回收的基本單位的。一個文件占用若干個簇,一個簇只屬於一個文件。這樣,在為文件分配磁盤空間時,就無須知道盤塊的大小,只要根據不同的磁盤容量,選擇相應大小的簇,即使NTFS具有了與磁盤物理塊大小無關的獨立性。

  3. 文件的組織

  在NTFS中,以卷為單位,將一個卷中的所有文件信息、目錄信息以及可用的未分配空間信息,都以文件記錄的方式記錄在一張主控文件表MFT(Master File Table)中,該表是NTFS卷結構的中心,從邏輯上講,卷中的每個文件作為一條記錄,在MFT表中占有一行,其中還包括MFT自己的這一行。每行大小固定為1 B,每行稱為該行所對應文件的元數據(metadata),也稱為文件控制字。

 

8.1.5  索引組織方式

  1. 單級索引組織方式

  鏈接組織方式雖然解決了連續組織方式所存在的問題(即不便於隨機訪問),但又出現了另外兩個問題,即:① 不能支持高效的直接存取,要對一個較大的文件進行存取,須在FAT中順序地查找許多盤塊號;② FAT需占用較大的內存空間,由於一個文件所占用盤塊的盤塊號是隨機地分布在FAT中的,因而只有將整個FAT調入內存,才能保證在FAT中找到一個文件的所有盤塊號。

 

圖8-6  索引分配方式

 

  2. 多級索引組織方式

  在為一個大文件分配磁盤空間時,如果所分配出去的盤塊的盤塊號已經裝滿一個索引塊時,OS須再為該文件分配另一個索引塊,用於將以后繼續為之分配的盤塊號記錄於其中。依此類推,再通過鏈指針將各索引塊按序鏈接起來。

 

圖8-7  兩級索引分配

 

  3. 增量式索引組織方式

  1) 增量式索引組織方式的基本思想

  為了能較全面地照顧到小、中、大及特大型作業,可以采取多種組織方式來構成文件的物理結構。如果盤塊的大小為1 B或4 B,對於小文件(如1 B~10 B或4 B~40 B)而言,最多只會占用10個盤塊,為了能提高對數量眾多的小型作業的訪問速度,最好能將它們的每一個盤塊地址都直接放入文件控制塊FCB(或索引結點)中,這樣就可以直接從FCB中獲得該文件的盤塊地址。

  2)  NIX System V的組織方式

  在UNIX System V的索引結點中設有13個地址項,即i.addr(0)~i.addr(12),如圖8-8所示。

  (1) 直接地址。

  (2) 一次間接地址。

  (3) 多次間接地址。

 

圖8-8  混合索引方式

      

8.2  文件存儲空間的管理

 

8.2.1  空閑表法和空閑鏈表法

  1. 空閑表法

  1) 空閑表

  空閑表法屬於連續分配方式,它與內存的動態分配方式雷同,它為每個文件分配一塊連續的存儲空間。即系統也為外存上的所有空閑區建立一張空閑表,每個空閑區對應於一個空閑表項,其中包括表項序號、該空閑區的第一個盤塊號、該區的空閑盤塊數等信息。再將所有空閑區按其起始盤塊號遞增的次序排列,形成空閑盤塊表,如圖8-9所示。

 

圖8-9  空閑盤塊表

 

  2) 存儲空間的分配與回收

  空閑盤區的分配與內存的分區(動態)分配類似,同樣是采用首次適應算法和最佳適應算法等,它們對存儲空間的利用率大體相當,都優於最壞適應算法。在系統為某新創建的文件分配空閑盤塊時,先順序地檢索空閑表的各表項,直至找到第一個其大小能滿足要求的空閑區,再將該盤區分配給用戶(進程),同時修改空閑表。

 

  2. 空閑鏈表法

  1) 空閑盤塊鏈

  這是將磁盤上的所有空閑空間以盤塊為單位拉成一條鏈,其中的每一個盤塊都有指向后繼盤塊的指針。

  2) 空閑盤區鏈

  這是將磁盤上的所有空閑盤區(每個盤區可包含若干個盤塊)拉成一條鏈。在每個盤區上除含有用於指示下一個空閑盤區的指針外,還應有能指明本盤區大小(盤塊數)的信息。

 

8.2.2  位示圖法

  1. 位示圖

  位示圖是利用二進制的一位來表示磁盤中一個盤塊的使用情況。當其值為“0”時,表示對應的盤塊空閑;為“1”時,表示已分配。有的系統把“0”作為盤塊已分配的標志,把“1”作為空閑標志。(它們在本質上是相同的,都是用一位的兩種狀態來標志空閑和已分配兩種情況。)磁盤上的所有盤塊都有一個二進制位與之對應,這樣,由所有盤塊所對應的位構成一個集合,稱為位示圖。

 

圖8-10  位示圖

 

  2. 盤塊的分配

  根據位示圖進行盤塊分配時,可分三步進行:

  (1) 順序掃描位示圖,從中找出一個或一組其值為“0”的二進制位(“0”表示空閑時)。

  (2) 將所找到的一個或一組二進制位轉換成與之相應的盤塊號。假定找到的其值為“0”的二進制位位於位示圖的第i行、第j列,則其相應的盤塊號應按下式計算:

  

式中,n代表每行的位數。

  (3) 修改位示圖,令map[i, j] =1 。

 

  3. 盤塊的回收

  盤塊的回收分兩步:

  (1) 將回收盤塊的盤塊號轉換成位示圖中的行號和列號。轉換公式為:

    i = (b - 1)DIV  n + 1

    j = (b - 1)MOD  n + 1

  (2) 修改位示圖。令map[i, j] = 0 。

 

8.2.3  成組鏈接法

  1. 空閑盤塊的組織

  (1) 空閑盤塊號棧,用來存放當前可用的一組空閑盤塊的盤塊號(最多含100個號),以及棧中尚有的空閑盤塊(號)數N。順便指出,N還兼作棧頂指針用。

 

圖8-11  空閑盤塊的成組鏈接法

 

  (2) 文件區中的所有空閑盤塊被分成若干個組,比如,將每100個盤塊作為一組。假定盤上共有10000個盤塊,每塊大小為1 KB,其中第201~7999號盤塊用於存放文件,即作為文件區,這樣,該區的最末一組盤塊號應為7901~7999;次末組為7801~7900,…,倒數第二組的盤塊號為301~400;第一組為201~300,如圖8-11所示。

 

  (3) 將每一組含有的盤塊總數N和該組所有的盤塊號記入其前一組的第一個盤塊的S.free(0)~S.free(99)中。這樣,由各組的第一個盤塊可鏈成一條鏈。

 

  (4) 將第一組的盤塊總數和所有的盤塊號記入空閑盤塊號棧中,作為當前可供分配的空閑盤塊號。

 

  (5) 最末一組只有99個盤塊,其盤塊號分別記入其前一組的S.free(1)~S.free(99)中,而在S.free(0)中則存放“0”,作為空閑盤塊鏈的結束標志。(注:最后一組的盤塊數應為99,不應是100,因為這是指可供使用的空閑盤塊。其編號應為(1~99),0號中放空閑盤塊鏈的結尾標志。)

 

  2. 空閑盤塊的分配與回收

  當系統要為用戶分配文件所需的盤塊時,須調用盤塊分配過程來完成。該過程首先檢查空閑盤塊號棧是否上鎖,如未上鎖,便從棧頂取出一空閑盤塊號,將與之對應的盤塊分配給用戶,然后將棧頂指針下移一格。若該盤塊號已是棧底,即S.free(0),這是當前棧中最后一個可分配的盤塊號。

   

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

  (1) 改進文件的目錄結構以及檢索目錄的方法來減少對目錄的查找時間;

  (2) 選取好的文件存儲結構,以提高對文件的訪問速度;

  (3) 提高磁盤的I/O速度,能將文件中的數據快速地從磁盤傳送到內存中,或者相反。其中的第1和第2點已在上一章或本章作了較詳細的闡述,本節主要對如何提高磁盤的I/O速度作一簡單介紹。

 

8.3.1  磁盤高速緩存(Disk Cache)

  在設計磁盤高速緩存時需要考慮的問題有:

  (1) 如何將磁盤高速緩存中的數據傳送給請求進程;

  (2) 采用什么樣的置換策略;

  (3) 已修改的盤塊數據在何時被寫回磁盤。

 

  1. 數據交付(Data Delivery)方式

  如果I/O請求所需要的數據能從磁盤高速緩存中獲取,此時就需要將磁盤高速緩存中的數據傳送給請求進程。所謂的數據交付就是指將磁盤高速緩存中的數據傳送給請求者進程。系統可以采取兩種方式將數據交付給請求進程:

  (1) 數據交付

  (2) 指針交付

 

  2. 置換算法

  現在不少系統在設計其高速緩存的置換算法時,除了考慮到最近最久未使用這一原則外,還考慮了以下幾點:

  (1) 訪問頻率。

  (2) 可預見性。

  (3) 數據的一致性。

 

  3. 周期性地寫回磁盤

  還有一種情況值得注意,那就是根據LRU算法,那些經常要被訪問的盤塊數據可能會一直保留在高速緩存中,長期不會被寫回磁盤。

 

8.3.2  提高磁盤I/O速度的其它方法

  能有效地提高磁盤I/O速度的方法還有許多,如提前讀、延遲寫等,現介紹如下:

  1. 提前讀

  2. 延遲寫

  3. 優化物理塊的分布

  4. 虛擬盤

  由於訪問內存的速度遠高於訪問磁盤的速度,於是有人試圖利用內存空間去仿真磁盤,形成所謂虛擬盤,又稱為RAM盤。該盤的設備驅動程序也可以接受所有標准的磁盤操作,但這些操作的執行不是在磁盤上而是在內存中。這對用戶都是透明的。

 

8.3.3  廉價磁盤冗余陣列(RAID)

  1. 並行交叉存取

  這是把在大、中型機中,用於提高訪問內存速度的並行交叉存取技術應用到磁盤存儲系統中,以提高對磁盤的I/O速度。在該系統中,有多台磁盤驅動器,系統將每一盤塊中的數據分為若干個子盤塊數據,再把每一個子盤塊的數據分別存儲到各個不同磁盤中的相同位置上。以后當要將一個盤塊的數據傳送到內存時,采取並行傳輸方式,將各個盤塊中的子盤塊數據同時向內存中傳輸,從而使傳輸時間大大減少。

 

圖8-12  磁盤並行交叉存取方式

 

  2.  RAID的分級

  RAID在剛被推出時,是分成6級的,后來又增加了RAID 6級和RAID 7級。

  (1)  AID 0級。

  (2)  AID 1級。

  (3)  AID 3級。

  (4)  AID 5級。

  (5)  AID 6級和RAID 7級。

 

  3.  RAID的優點

  (1) 可靠性高,除了RAID 0級外,其余各級都采用了容錯技術。當陣列中某一磁盤損壞時,並不會造成數據的丟失。此時可根據其它未損壞磁盤中的信息來恢復已損壞的盤中的信息。其可靠性比單台磁盤機高出一個數量級。

  (2) 磁盤I/O速度高,由於采取了並行交叉存取方式,可使磁盤I/O速度提高N-1倍。

  (3) 性能/價格比高,RAID的體積與具有相同容量和速度的大型磁盤系統相比,只是后者的1/3,價格也只是后者的1/3,且可靠性高。換言之,它僅以犧牲1/N的容量為代價,換取了高可靠性。

    

8.4  提高磁盤可靠性的技術

8.4.1  第一級容錯技術SFT-Ⅰ

  第一級容錯技術(SFT-Ⅰ)是最基本的一種磁盤容錯技術,主要用於防止因磁盤表面缺陷所造成的數據丟失。它包含雙份目錄、雙份文件分配表及寫后讀校驗等措施。

 

  1. 雙份目錄和雙份文件分配表

  在磁盤上存放的文件目錄和文件分配表FAT,是文件管理所用的重要數據結構。為了防止這些表格被破壞,可在不同的磁盤上或在磁盤的不同區域中分別建立(雙份)目錄表和FAT。其中一份為主目錄及主FAT,另一份為備份目錄及備份FAT。一旦由於磁盤表面缺陷而造成主文件目錄或主FAT的損壞時,系統便自動啟用備份文件目錄及備份FAT,從而可以保證磁盤上的數據仍是可訪問的。

 

  2. 熱修復重定向和寫后讀校驗

  由於磁盤價格昂貴,在磁盤表面有少量缺陷的情況下,則可采取某種補救措施后繼續使用。一般主要采取以下兩個補救措施:

  (1) 熱修復重定向。

  (2) 寫后讀校驗方式。

 

8.4.2  第二級容錯技術SFT-Ⅱ

  1. 磁盤鏡像(Disk Mirroring)

  為了避免磁盤驅動器發生故障而丟失數據,便增設了磁盤鏡像功能。為實現該功能,須在同一磁盤控制器下,再增設一個完全相同的磁盤驅動器,如圖8-13所示。

 

  2. 磁盤雙工(Disk Duplexing)

  如果控制這兩台磁盤驅動器的磁盤控制器發生故障,或主機到磁盤控制器之間的通道發生故障,磁盤鏡像功能便起不到數據保護的作用。因此,在第二級容錯技術中,又增加了磁盤雙工功能,即將兩台磁盤驅動器分別接到兩個磁盤控制器上,同樣使這兩台磁盤機鏡像成對,如圖8-14所示。

 

圖8-13  磁盤鏡像示意圖

 

圖8-14  磁盤雙工示意圖

 

8.4.3  基於集群技術的容錯功能

  1. 雙機熱備份模式

  如圖8-15所示,在這種模式的系統中,備有兩台服務器,兩者的處理能力通常是完全相同的,一台作為主服務器,另一台作為備份服務器。

 

圖8-15  雙機熱備份模式

 

  2. 雙機互為備份模式

  在雙機互為備份模式中,平時,兩台服務器均為在線服務器,它們各自完成自己的任務,例如,一台作為數據庫服務器,另一台作為電子郵件服務器。為了實現兩者互為備份的功能,在兩台服務器之間,應通過某種專線將其連接起來。如果希望兩台服務器之間能相距較遠,最好利用FDDI單模光纖來連接兩台服務器。在此情況下,最好再通過路由器將兩台服務器互連起來,作為備份通信線路。圖8-16示出了雙機互為備份系統的情況。

 

圖8-16  雙機互為備份系統的示意圖

 

  3. 公用磁盤模式

  為了減少信息復制的開銷,可以將多台計算機連接到一台公共的磁盤系統上去。該公共磁盤被划分為若干個卷。每台計算機使用一個卷。如果某台計算機發生故障,此時系統將重新進行配置,根據某種調度策略來選擇另一台替代機器,后者對發生故障的機器的卷擁有所有權,從而可接替故障計算機所承擔的任務。這種模式的優點是消除了信息的復制時間,因而減少了網絡和服務器的開銷。

 

8.4.4  后備系統

  1. 磁帶機

  它是最早作為計算機系統的外存儲器。但由於它只適合存儲順序文件,故現在主要把它作為后備設備。磁盤機的主要優點是容量大,一般可達數GB至數十GB,且價格便宜,故在許多大、中型系統中都配置了磁帶機。其缺點是只能順序存取且速度也較慢,為數百KB到數MB,為了將一個大容量磁盤上的數據拷貝到磁帶上,需要花費很多時間。

 

  2. 硬盤

  (1) 移動磁盤。

  (2) 固定硬盤驅動器。

 

圖8-17  利用大容量硬盤兼做后備系統

 

  3. 光盤驅動器

  光盤驅動器是現在最流行的多媒體設備,可將它們分為如下兩類:

  (1) 只讀光盤驅動器CD-ROM和DVD-ROM。

  (2) 可讀寫光盤驅動器。

    

8.5  數據一致性控制

  在實際應用中,經常會在多個文件中都含有同一個數據。所謂數據一致性問題是指,保存在多個文件中的同一數據,在任何情況下都必需能保證相同。

 

8.5.1  事務

  1. 事務的定義

  事務是用於訪問和修改各種數據項的一個程序單位。事務也可以被看做是一系列相關讀和寫操作。

 

  2. 事務記錄(Transaction Record)

  為了實現上述的原子修改,通常須借助於稱為事務記錄的數據結構來實現。這些數據結構被放在一個非常可靠的存儲器(又稱穩定存儲器)中,用來記錄在事務運行時數據項修改的全部信息,故又稱為運行記錄(Log)。

 

  3. 恢復算法

  由於一組被事務Ti修改的數據以及它們被修改前和修改后的值都能在事務記錄表中找到,因此,利用事務記錄表系統能處理任何故障而不致使故障造成非易失性存儲器中信息的丟失。恢復算法可利用以下兩個過程:

  (1) undo〈Ti〉。該過程把所有被事務Ti修改過的數據恢復為修改前的值。

  (2) redo〈Ti〉。該過程能把所有被事務Ti修改過的數據設置為新值。

 

8.5.2  檢查點

  1. 檢查點(Check Points)的作用

  如前所述,當系統發生故障時,必須去檢查整個Log表,以確定哪些事務需要利用redo〈Ti〉過程去設置新值,而哪些事務又需要利用undo〈Ti〉過程去恢復數據的舊值。由於在系統中可能存在着許多並發執行的事務,因而在事務記錄表中就會有許多事務執行操作的記錄。隨着時間的推移,記錄的數據也會愈來愈多。因此,一旦系統發生故障,在事務記錄表中的記錄清理起來就非常費時。

 

  2. 新的恢復算法

  在引入檢查點后,可以大大減少恢復處理的開銷。因為在發生故障后,並不需要對事務記錄表中的所有事務記錄進行處理,而只需對最后一個檢查點之后的事務記錄進行處理。因此,恢復例程首先查找事務記錄表,確定在最近檢查點以前開始執行的最后的事務Ti。在找到這樣的事務后,再返回去搜索事務記錄表,便可找到第一個檢查點記錄,恢復例程便從該檢查點開始返回搜索各個事務的記錄,並利用redo和undo過程對它們進行處理。

 

8.5.3  並發控制(Concurrent Control)

  1. 利用互斥鎖實現“順序性”

  實現順序性的一種最簡單的方法,是設置一種用於實現互斥的鎖,簡稱為互斥鎖(Exclusive Lock)。在利用互斥鎖實現順序性時,應為每一個共享對象設置一把互斥鎖。當某一事務Ti要去訪問某對象時,應先獲得該對象的互斥鎖。若成功,便用該鎖將該對象鎖住,於是事務T便可對該對象執行讀或寫操作;而其它事務由於未能獲得該鎖,因而不能訪問該對象。如果Ti需要對一批對象進行訪問,則為了保證事務操作的原子性,Ti應先獲得這一批對象的互斥鎖,以將這些對象全部鎖住。

 

  2. 利用互斥鎖和共享鎖實現順序性

  利用互斥鎖實現順序性的方法簡單易行。目前有不少系統都是采用這種方法來保證事務操作的順序性,但這卻存在着效率不高的問題。因為一個共享文件雖然只允許一個事務去寫,但卻允許多個事務同時去讀;而在利用互斥鎖來鎖住文件后,則只允許一個事務去讀。為了提高運行效率而又引入了另一種形式的鎖——共享鎖(Shared Lock)。共享鎖與互斥鎖的區別在於:互斥鎖僅允許一個事務對相應對象執行讀或寫操作,而共享鎖則允許多個事務對相應對象執行讀操作,但不允許其中任何一個事務對對象執行寫操作。

 

8.5.4  重復數據的數據一致性問題

  1. 重復文件的一致性

  我們以UNIX類型的文件系統為例來說明如何保證重復文件的一致性問題。對於通常的UNIX文件目錄,其每個目錄項中含有一個ASCII碼的文件名和一個索引結點號,后者指向一個索引結點。當有重復文件時,一個目錄項可由一個文件名和若干個索引結點號組成,每個索引結點號都是指向各自的索引結點。圖8-18示出了UNIX類型的目錄和具有重復文件的目錄。

 

圖8-18  UNIX類型的目錄

 

  2. 鏈接數一致性檢查

  在UNIX類型的文件目錄中,其每個目錄項內都含有一個索引結點號,用於指向該文件的索引結點。對於一個共享文件,其索引結點號會在目錄中出現多次。

      

 

習    題 8:

 

  1. 目前常用的外存有哪幾種組織方式?

  2. 由連續組織方式所形成的順序文件的主要優缺點是什么? 它主要應用於何種場合?

  3. 在鏈接式文件中常用哪種鏈接方式? 為什么?

  4. 在文件分配表中為什么要引入“簇”的概念? 以“簇”為基本的分配單位有什么好處?

  5. 簡要說明為什么要從FAT12發展為FAT16? 又進一步要發展為FAT32?

  6. 試解釋邏輯簇號和虛擬簇號這兩個名詞,NTFS是如何將它們映射到文件的物理地址上的?

  7. 在MS-DOS中有兩個文件A和B,A占用11、12、16和14四個盤塊;B占用13、18和20三個盤塊。試畫出在文件A和B中各盤塊間的鏈接情況及FAT的情況。

  8.  TFS文件系統中的文件所采用的是什么樣的物理結構?

  9. 假定一個文件系統的組織方式與MS-DOS相似,在FAT中可有64 個指針,磁盤的盤塊大小為512 ,試問該文件系統能否指引一個512 B的磁盤?

  10. 為了快速訪問,又易於更新,當數據為以下形式時,應選用何種文件組織方式?

  (1) 不經常更新,經常隨機訪問;

  (2) 經常更新,經常按一定順序訪問;

  (3) 經常更新,經常隨機訪問。

  11. 在UNIX 中,如果一個盤塊的大小為1 B,每個盤塊號占4 個字節,即每塊可放256個地址。請轉換下列文件的字節偏移量為物理地址:

  (1)  999;(2)  8000;(3)  20000。

  12. 什么是索引文件? 為什么要引入多級索引?

  13. 試說明增量式索引組織方式。

  14. 有一計算機系統利用圖8-19所示的位示圖來管理空閑盤塊。盤塊的大小為1 B,現要為某文件分配兩個盤塊,試說明盤塊的具體分配過程。

圖8-19  某計算機系統的位示圖

  15. 某操作系統的磁盤文件空間共有500塊,若用字長為32位的位示圖管理盤空間,試問:

  (1) 位示圖需多少個字?

  (2) 第i字第j位對應的塊號是多少?

  (3) 給出申請/歸還一塊的工作流程。

  16. 對空閑磁盤空間的管理常采用哪幾種分配方式? 在UNIX系統中是采用何種分配方式?

  17. 可從哪幾方面來提高對文件的訪問速度?

  18. 何謂磁盤高速緩存? 在設計磁盤高速緩存時需要考慮哪些問題?

 

  19. 可以采取哪幾種方式將磁盤高速緩存中的數據傳送給請求者進程?

  20. 何謂提前讀和延遲寫?

  21. 試說明廉價磁盤冗余陣列RAID的主要優點。

  22. 在第一級系統容錯技術中,包括哪些容錯措施? 什么是寫后讀校驗?

  23. 在第二級系統容錯技術中,包括哪些容錯措施? 請畫圖說明之。

  24. 具有容錯功能的集群系統的主要工作模式有哪幾種? 請簡要說明之。

 

  25. 為什么要在系統中配置后備系統? 目前常用做后備系統的設備有哪幾種?

  26. 何謂事務? 如何保證事務的原子性?

  27. 引入檢查點的目的是什么? 引入檢查點后又如何進行恢復處理?

  28. 為何引入共享鎖? 如何用互斥鎖或共享鎖來實現事務的順序性?

  29. 當系統中有重復文件時,如何保證它們的一致性?

  30. 如何檢查盤塊號的一致性? 檢查時可能出現哪幾種

情況?

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM