作業系統——檔案系統概述、檔案邏輯地址、目錄、實體地址
一、檔案系統概述
軟體資源管理
資訊長期儲存的需要
儲存介質:磁碟、光碟、磁帶…
完成外存資訊的管理和存取
在前面的學習中,我們知道檔案也是一種系統資源。
這裡先給出檔案和檔案系統的定義。
1、檔案
外存中具有符號名的一組有邏輯意義的資訊項的集合。
2、檔案系統
指OS中管理檔案的那一部分軟體。它負責管理檔案的儲存、檢索、更新,提供安全可靠的共享和保護手段,併為使用者提供一整套方便有效的檔案使用和操作方法。它在OS介面中佔比例最大,是I/O系統的上層軟體。檔案系統面向使用者的主要任務是實現檔案的“按名存取”。
3、檔案的屬性
主要屬性有:檔名、識別符、型別、位置、大小、建立時間、上次修改時間、檔案所有者和保護資訊等。
UNIX系統中檔案屬性:
- 普通檔案
d 目錄檔案
p 管道檔案
c 字元型裝置檔案
4、檔案的分類
按性質和用途分:
系統檔案、庫檔案、使用者檔案
按資料形式:
原始檔、目標檔案、可執行檔案
按對檔案實施的保護級別分:
只讀檔案、讀寫檔案、執行檔案
按邏輯結構分:
有結構檔案、無結構檔案
順序檔案、連結檔案、索引檔案
二、檔案的邏輯結構
檔案的結構指檔案中資訊的配置和構造方式,有邏輯結構和物理結構之分。
使用者眼中檔案資訊的組織形式叫檔案的邏輯結構。它包括記錄式檔案和流式檔案兩種,每種檔案資訊的邏輯單位分別是記錄和字元。
UNIX系統視所有檔案的邏輯結構為無結構的流式檔案
早期有結構的記錄式檔案又分定長和不定長兩種
檔案的邏輯結構與檔案的儲存介質無關
1、無結構檔案
2、有結構檔案
根據各條記錄的長度(佔用的儲存空間)是否相等,又可以分為定長記錄和可變長記錄兩種。
根據有結構檔案中的各條記錄如何組織,可分為三類
順序檔案
索引檔案
索引順序檔案
這裡進行檢索效率的分析:
多級索引順序檔案
看完檔案的邏輯結構的劃分,是不是覺得好像在哪裡學過類似的組織方式?
回想一下在計算機組成原理中Cache的組織方式,是不是也是這樣的?
地址映像的直接映像、全相聯映像、組相聯映像不就對應著順序檔案、索引檔案、索引順序檔案?
3、總結
三、檔案目錄
1、檔案控制塊
檔案控制塊(FCB):是OS為管理檔案而設定的資料結構,存放了為管理檔案所需的所有有關資訊(檔案屬性),也叫檔案目錄項
檔案控制塊是檔案存在的標誌
檔案控制塊的內容:
基本資訊:檔案的名字、地址、大小、結構、型別
存取控制資訊:檔案屬主、存取許可權或屬性或口令
使用資訊:共享計數,檔案的建立、修改日期等
檔案控制塊內容
Name
Type
Address
Current length
Maximum length
Date last accessed (for archival)
Date last updated (for dump)
Owner ID (who pays)
Protection information (discuss later)
檔案目錄:把所有的FCB組織在一起,就構成了檔案目錄,即檔案控制塊的有序集合
目錄檔案:為了實現對檔案目錄的管理,通常將檔案目錄以檔案的形式儲存在外存,這個檔案就叫目錄檔案
目錄主要是為了系統快速實現“按名存取”而引入的,查目錄是檔案系統最頻繁的操作,因此目錄的合理組織很重要
2、目錄結構—單級目錄結構
單級目錄結構
系統為所有檔案建立一個目錄檔案(線性表)
優點:簡單,易實現
缺點:
限制了使用者對檔案的命名(存在“命名衝突”問題)
順序檢索檔案時平均檢索時間長
限制了對檔案的共享
不適於多使用者系統
3、目錄結構—兩級目錄結構
二級目錄結構
為克服單級目錄結構存在的命名衝突問題,並提高對目錄檔案的檢索速度而引入
目錄分為兩級:一級稱為主檔案目錄,給出使用者名稱,使用者子目錄所在的物理位置;二級稱為使用者檔案目錄(又稱使用者子目錄),給出該使用者所有檔案的FCB
優點:解決了檔案的重名問題和檔案共享問題;
可用於多使用者系統;
順序查詢時間降低。
缺點:增加了系統開銷
4、目錄結構—多級目錄結構
多級目錄結構又稱為樹形目錄結構
對二級目錄簡單擴充可得三級或三級以上的多級目錄結構,即允許每一級目錄中的FCB要麼指向檔案,要麼指向下一級子目錄即可。這是當今主流OS普遍採用的目錄結構
優點: ①解決了命名衝突問題
②提高了檔案檢索速度
③易於實現檔案的共享和保護
④層次結構清晰,便於對檔案分類管理
缺點:查詢一個檔案按路徑名逐層檢查,由於每個檔案都放在外存,多次訪盤影響速度
這裡再介紹一下相對路徑和絕對路徑的概念
樹形目錄結構可以很方便地對檔案進行分類,層次結構清晰,也能更有效地進行檔案的管理和保護。但是,樹形結構不便於實現檔案的共享。為此,提出了"無環圖目錄結構"
5、目錄結構—無環圖目錄結構
6、索引結點(FCB的改進)
這裡先引出一個概念
檔案定址
根據FCB中檔案實體地址等資訊,求出檔案的任意記錄或字元在存取介質上的地址,稱為檔案定址。
對FCB過大的改進方法
採用目錄項分解法,把FCB分成兩部分。
符號目錄頂(次部)
檔名,檔案號
基本目錄項(主部)
除檔名外的所有專案
如:UNIX:I節點(索引結點)
例:
設物理塊大小512位元組,一個FCB有48個位元組,符號目錄項佔 8位元組,檔名6位元組,檔案號2位元組,基本目錄項佔 48-6=42位元組。若把含有128個目錄項的某單級目錄檔案改造成符號檔案目錄和基本檔案目錄的結構,試說明改造後查詢一個檔案的平均訪盤次數,談一下自己的認識。
解:分解前:1塊含512/48=10個FCB
分解後:1塊含512/8=64個符號目錄項,或者,1塊含512/42=12個基本目錄項
該目錄檔案含有128個目錄項,分解前佔13(⌈128/10⌉)塊,分解後其符號檔案佔2塊 ,基本檔案佔11塊(8:42=2:11)。
故分解前查詢一個檔案的平均訪盤次數:(1+13)/2=7次,分解後:(1+2)/2 +1 =2.5次
由此可見:改造後減少了訪問硬碟的次數,提高了檢索速度。
7、總結
四、檔案的物理結構(檔案的分配方式)
系統眼中檔案資訊的組織形式叫檔案的物理結構。它包括順序檔案、連結檔案、索引檔案三種(實為連續檔案與不連續檔案兩大類)
檔案的物理結構也叫檔案的儲存結構,指檔案在外存上的儲存組織形式,它與儲存介質的效能和外存的分配方式有關
1、檔案塊、磁碟塊
在很多作業系統中,磁碟塊的大小與記憶體塊、頁面的大小相同
2、檔案分配方式—連續分配
連續分配方式要求每個檔案在磁碟上佔有一組連續的塊。
這裡需要明白一下磁碟讀取的原理
結論:物理上採用連續分配,儲存空間利用率低,會產生難以利用的磁碟碎片。
可以用緊湊來處理磁碟碎片,但需要耗費很大的時間代價。
連續分配總結
檔案的資訊存放在若干連續的物理塊中。
優點:實現簡單,順序存取速度快,至此順序訪問和直接訪問(隨機訪問)
缺點:但分配慢,不方便檔案拓展,儲存空間利用率低,外存碎片多(似記憶體的可重定位可變分割槽分配)
3、檔案分配方式—連結分配
連結分配採取離散分配的方式,可以為檔案分配離散的磁碟塊。分為隱式連結和顯示連結兩種。
連結分配—隱式連結
隱式連結總結
連結分配—顯式連結
看到這裡是否想到了資料結構中的靜態連結串列?
注意:一個磁碟僅設定一張FAT!FAT的各個表項在物理上連續儲存,且每一個表項長度相同,因此“物理塊號”欄位可以是隱含的。
連結分配總結
4、檔案分配方式—索引分配
注意:在顯式連結的鏈式分配方式中,檔案分配表FAT是一個磁碟對應一張表。而索引分配方式中,索引表是一個檔案對應一張。
但如果出現一個磁碟塊不能裝下檔案的整張索引表,該如何解決這個問題?
連結方案
多層索引
混合索引
索引分配總結
支援隨機訪問?
&n