軟件資源管理
信息長期保存的須要
存儲介質:磁盤、光盤、磁帶…
完成外存信息的管理和存取安全
在前面的學習中,咱們知道文件也是一種系統資源。數據結構
這裏先給出文件和文件系統的定義。性能
外存中具備符號名的一組有邏輯意義的信息項的集合。學習
指OS中管理文件的那一部分軟件。它負責管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,併爲用戶提供一整套方便有效的文件使用和操做方法。它在OS接口中佔比例最大,是I/O系統的上層軟件。文件系統面向用戶的主要任務是實現文件的「按名存取」。
按名存取是文件系統最爲主要的任務!!!spa
主要屬性有:文件名、識別符、類型、位置、大小、建立時間、上次修改時間、文件全部者和保護信息等。操作系統
UNIX系統中文件屬性:
- 普通文件
d 目錄文件
p 管道文件
c 字符型設備文件
b 塊設備文件 3d
按性質和用途分:
系統文件、庫文件、用戶文件
按數據形式:
源文件、目標文件、可執行文件
按對文件實施的保護級別分:
只讀文件、讀寫文件、執行文件
按邏輯結構分:
有結構文件、無結構文件
按文件中物理結構分:
順序文件、連接文件、索引文件
orm
文件的結構指文件中信息的配置和構造方式,有邏輯結構和物理結構之分。
用戶眼中文件信息的組織形式叫文件的邏輯結構。它包括記錄式文件和流式文件兩種,每種文件信息的邏輯單位分別是記錄和字符。
UNIX系統視全部文件的邏輯結構爲無結構的流式文件
早期有結構的記錄式文件又分定長和不定長兩種
文件的邏輯結構與文件的存儲介質無關blog
根據各條記錄的長度(佔用的存儲空間)是否相等,又能夠分爲定長記錄和可變長記錄兩種。索引
根據有結構文件中的各條記錄如何組織,可分爲三類
這裏進行檢索效率的分析:
看完文件的邏輯結構的劃分,是否是以爲好像在哪裏學過相似的組織方式?
回想一下在計算機組成原理中Cache的組織方式,是否是也是這樣的?
地址映像的直接映像、全相聯映像、組相聯映像不就對應着順序文件、索引文件、索引順序文件?
文件控制塊(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組織在一塊兒,就構成了文件目錄,即文件控制塊的有序集合
目錄文件:爲了實現對文件目錄的管理,一般將文件目錄以文件的形式保存在外存,這個文件就叫目錄文件
目錄主要是爲了系統快速實現「按名存取」而引入的,查目錄是文件系統最頻繁的操做,所以目錄的合理組織很重要
單級目錄結構
系統爲全部文件創建一個目錄文件(線性表)
優勢:簡單,易實現
缺點:
限制了用戶對文件的命名(存在「命名衝突」問題)
順序檢索文件時平均檢索時間長
限制了對文件的共享
不適於多用戶系統
二級目錄結構
爲克服單級目錄結構存在的命名衝突問題,並提升對目錄文件的檢索速度而引入
目錄分爲兩級:一級稱爲主文件目錄,給出用戶名,用戶子目錄所在的物理位置;二級稱爲用戶文件目錄(又稱用戶子目錄),給出該用戶全部文件的FCB
優勢:解決了文件的重名問題和文件共享問題;
可用於多用戶系統;
順序查找時間下降。
缺點:增長了系統開銷
多級目錄結構又稱爲樹形目錄結構
對二級目錄簡單擴充可得三級或三級以上的多級目錄結構,即容許每一級目錄中的FCB要麼指向文件,要麼指向下一級子目錄便可。這是當今主流OS廣泛採用的目錄結構
優勢: ①解決了命名衝突問題
②提升了文件檢索速度
③易於實現文件的共享和保護
④層次結構清晰,便於對文件分類管理
缺點:查找一個文件按路徑名逐層檢查,因爲每一個文件都放在外存,屢次訪盤影響速度
這裏再介紹一下相對路徑和絕對路徑的概念
樹形目錄結構能夠很方便地對文件進行分類,層次結構清晰,也能更有效地進行文件的管理和保護。可是,樹形結構不便於實現文件的共享。爲此,提出了"無環圖目錄結構"
這裏先引出一個概念
文件尋址
根據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次
因而可知:改造後減小了訪問硬盤的次數,提升了檢索速度。
系統眼中文件信息的組織形式叫文件的物理結構。它包括順序文件、連接文件、索引文件三種(實爲連續文件與不連續文件兩大類)
文件的物理結構也叫文件的存儲結構,指文件在外存上的存儲組織形式,它與存儲介質的性能和外存的分配方式有關
在不少操做系統中,磁盤塊的大小與內存塊、頁面的大小相同
連續分配方式要求每一個文件在磁盤上佔有一組連續的塊。
這裏須要明白一下磁盤讀取的原理
結論:物理上採用連續分配,存儲空間利用率低,會產生難以利用的磁盤碎片。
能夠用緊湊來處理磁盤碎片,但須要耗費很大的時間代價。
文件的信息存放在若干連續的物理塊中。
優勢:實現簡單,順序存取速度快,至此順序訪問和直接訪問(隨機訪問)
缺點:但分配慢,不方便文件拓展,存儲空間利用率低,外存碎片多(似內存的可重定位可變分區分配)
連接分配採起離散分配的方式,能夠爲文件分配離散的磁盤塊。分爲隱式連接和顯示連接兩種。
看到這裏是否想到了數據結構中的靜態鏈表?
注意:一個磁盤僅設置一張FAT!FAT的各個表項在物理上連續存儲,且每個表項長度相同,所以「物理塊號」字段能夠是隱含的。
注意:在顯式連接的鏈式分配方式中,文件分配表FAT是一個磁盤對應一張表。而索引分配方式中,索引表是一個文件對應一張。
但若是出現一個磁盤塊不能裝下文件的整張索引表,該如何解決這個問題?