操作系統入門(六)文件管理

在這裏插入圖片描述

一學期的可也算是基本上完了,不知道大家學的怎樣。
應朋友之約,我來總結一下這學期學的操作系統課程,方便大家複習。
總綱:https://blog.csdn.net/qq_43762191/article/details/106411766 (帶思維導圖)

文章目錄

概述

文件和文件系統

定義

-文件是在邏輯上具有完整意義的信息集合,它有一個名字作標識
-文件系統是操作系統中負責管理和存取文件的程序模塊,也稱爲信息管理系統

文件的基本特徵

-文件的內容爲一組相關信息
-文件具有保存性
-文件可按名存取

文件系統的功能

-完成文件存儲空間的管理
-實現文件名到物理地址的映射
-實現文件和目錄的操作管理
-提供文件共享能力和安全可靠措施
-文件系統向用戶提供了有關文件和目錄操作的接口

文件的分類

按文件的性質和用途

系統文件、庫文件、用戶文件

按文件的組織形式

普通文件 、目錄文件、特殊文件

根據使用和管理情況

臨時文件、永久文件、檔案文件

按文件系統提出的保護級別

讀文件、讀寫文件、不保護文件

按文件的數據流向

輸入型文件、輸出型文件、輸入輸出文件

文件的組織結構是指文件的構造方式,用戶和文件系統往往從不同的角度對待同一個文件。因此對於任何一個文件都存在若兩種形式的結構:文件的邏輯結構、文件的物理結構

文件的結構和存取方式

文件的存取方式

順序存取

順序存取是按照文件的邏輯地址順序存取

隨機存取

隨機存取法允許用戶根據記錄的編號存取文件的任一記錄,或者是根據存取命令把讀寫指針移到欲讀寫處來讀寫

按鍵存取

按鍵存取是一種用在複雜文件系統,特別是數據庫管理系統中的存取方法

文件的邏輯結構

設計文件系統時,選擇邏輯結構應遵循的原則

便於修改、提高檢索效率、使文件信息佔據最小的存儲空間、便於用戶進行操作

文件的邏輯結構分類

記錄式文件(有結構文件)

-記錄式文件在邏輯上被看成一組連續有序的記錄的集合
-根據記錄的長度分類:定長記錄文件、變長記錄文件
-記錄式文件可把文件中的記錄按各種不同的方式排列,構成不同的邏輯結構:順序文件、索引文件、索引順序文件

流式文件(無結構文件)

-無結構的流式文件是相關的有序字符的集合
-字符是構成文件的基本單位
-查找困難、管理簡單

存儲介質

概念

-一盤磁帶、一個磁(或溫)盤組或一張軟盤都稱爲一卷。卷是存儲介質的物理單位
-塊是存儲介質上連續信息所組成的一個區域,也叫做物理記錄。塊是主存儲器和輔助存儲設備進行信息交換的物理單位,每次總是交換一塊或整數塊信息

順序存儲設備

-順序存儲存儲設備是嚴格依賴信息的物理位置進行定位和讀/寫的存儲設備
-磁帶機是一種典型的順序存儲設備
直接存儲設備
-直接存儲設備又叫隨機存儲設備。允許文件系統直接存取對應存儲介質上的任意物理塊
-磁盤機是一種典型直接存儲存儲設備

文件的物理結構

文件的物理結構也就是邏輯文件在物理存儲空間中的存放方法和組織關係

磁帶文件的物理結構

磁帶機是一種順序存取的設備,一切組織在磁帶上的文件都採用順序結構,也就是將一個文件在邏輯上連續的信息存放到存儲介質的依次相鄰的塊上,便形成順序結構,磁帶上的每個文件都有文件頭標、文件信息和文件尾標三個組成部分

磁盤文件的物理結構

連續文件

-定義:將一個文件中邏輯上連續的信息存放到磁盤上的依次相鄰的塊上便形成順序結構,這類文件叫順序文件,又稱連續文件
-優點:順序訪問容易、速度快
-缺點:要求有連續的存儲空間、必須事先知道文件的長度

鏈接文件

-定義:順序的邏輯記錄被存放在不連續的磁盤塊上,用指針把這些磁盤塊按邏輯記錄的順序鏈接起來,則形成了文件的鏈接結構,鏈接結構的文件稱爲“鏈接文件”或“串聯文件”
-分類:隱式鏈接,在每個盤塊中部含有一個指向下一個盤塊的指針 ;顯示鏈接,把用於鏈接文件物理塊的指針顯式地存放在外存的一張鏈接表(FAT)中
-優點:消除了外部碎片、顯著地提高外存空間的利用率、無需事先知道文件的長度 、插入刪除記錄容易
-缺點:隱式鏈接,只適合於順序訪問、直接訪問低效 、可靠性較差 ;顯示連接,不能支持高效地直接存取、存放鏈接指針的表會佔用較大的內存空間

索引文件

-定義:爲每個文件分配一個索引塊(用來存放索引的盤塊),把分配給該文件的所有盤塊號都記錄在該索引塊中,按照這種分配方式存儲的文件就是索引文件
-一級索引、兩級索引或多級索引結構
-優點:支持直接訪問
-缺點:索引要花費較多的外存空間
-混合索引分配方式 :指將多種不同級的索引分配方式結合而形成的一種分配方式,有效且實用

直接文件

-定義:在直接存取存儲設備上,記錄的關鍵字與其地址之間可以通過某種方式建立對應關係,利用這種關係實現記錄存取的文件稱爲直接文件
-“衝突”問題:地址的總數和記錄的關鍵字之間並不存在一一對應的關係,不同的關鍵字經過變換可能會得到相同的地址
-解決“衝突”方法:設計出好的變換函數,並且還要求有好的處理衝突的方法
-優點:存取速度較快,存儲空間不必連續,邏輯記錄與物理記錄之間不存在對應或順序關係
-缺點:對沖突的處理需要時間和空間的開銷

文件目錄

文件目錄管理應達到的要求

-實現“按名存取”
-提高對目錄的檢索速度
-文件共享
-允許文件重名

文件控制塊

概念

文件系統在創建每個文件時爲其建立了一個文件目錄,也稱爲文件說明或文件控制塊FCB。文件目錄是爲文件設置用於文件描述和文件控制的數據結構,它與文件一一對應,它是隨着文件的建立而誕生,隨着文件的刪除而消失,某些內容隨着文件的使用而動態改變

文件控制塊包括的內容

-有關文件存取控制的信息
-有關文件結構的信息
-有關文件管理的信息

文件目錄結構

文件系統把若干個文件的文件目錄組織成一個獨立的文件,這個全部由文件目錄組成的文件稱爲目錄文件

一級目錄結構

-實現方式:最簡單的文件目錄,在操作系統中構造一張線性表,與每個文件有關的說明信息佔用一個目錄項
-優點 :實現容易、管理簡單、實現了按文件名存取
-缺點:搜索範圍寬、不允許文件重名、 難於實現文件共享

二級目錄

-實現方式:第一級爲主文件目錄,用於管理所有用戶文件目錄,它的目錄項登記了系統用戶的名字及該用戶文件目錄的地址。第二級爲用戶文件目錄,它爲該用戶的每個文件保存一登記欄。
-優點:實現了對文件的保密和保護、允許不同用戶使用相同的文件名、可以實現文件共享

多級文件目錄結構

-實現方式:主文件目錄演變爲根目錄。根目錄項既可以表示一個普通文件,也可以是下一級目錄的目錄文件一個說明項。如此層層類推,形成了一個樹型層次結構
-優點:解決了文件重名問題、有利於文件的分類、便於制定保護文件的存取權限,有利於文件的保密

目錄查找和目錄改進

目錄的查找

    -線性檢索 
    -哈希檢索
    -其他算法

目錄的改進

爲加快目錄查找可採用目錄項分解法,即把目錄項分爲兩部分:符號目錄項(包含文件名以及相應的文件號)和基本目錄項(包含除了文件名外文件控制塊的其餘全部信息)

文件系統的實現

打開文件表

當用戶申請打開一個文件時,系統要在內存中爲該用戶保存一些表目。在內存中所需的表目有系統打開文件表和用戶打開文件表

系統打開文件表

該“系統打開文件表”放在內存,用於保存已打開文件的目錄項。此外,還保存文件號、共享計數、修改標誌等等

用戶打開文件表

每個進程一個都有一個“用戶打開文件表”。該表的內容有文件描述符,打開方式、系統打開文件表入口等等

用戶打開文件表與系統打開文件表之間的關係

用戶打開文件表指向了系統打開文件表。如果多個進程共享同一個文件,則多個用戶打開文件表目對應系統打開文件表的同一入口

外存空間管理

空閒塊表法

數據結構

系統爲每個磁盤建立一張空閒塊表,表中每個登記項記錄一組連續空閒塊的首塊號和塊數,空閒塊數爲“0”的登記項爲“空”登記項

分配回收算法

這種管理方式適合採用順序結構的文件 ,分配和回收算法類似主存儲器的動態分區管理方式中採用的最先適應、最優適應和最壞適應算法
-優缺點:分配和回收一個盤塊的過程非常簡單,但是空閒盤塊鏈可能很大

空閒盤區鏈

-將磁盤上的所有空閒盤區(每個盤區可包含若干個盤塊)拉成一條鏈
-分配方法與內存的動態分區分配類似,通常採用首次適應算法。在回收盤區時,同樣也要將與回收區鄰接的空閒盤區與之合併
-優缺點:分配和回收過程較複雜,但空閒盤區鏈較短

位示圖法

磁盤塊的組織

一個磁盤的分塊確定後,根據總塊數決定位示圖由多少字組成,位示圖中的每一位與一個磁盤塊對應,某位爲“1”狀態表示相應塊已被佔用,爲“0”狀態的位所對應的塊是空閒塊

 一般公式爲:
                         塊號=i×位示圖中的字長+j 
磁盤塊的分配

當有文件要存放到磁盤上時,查位示圖中爲“0”的位,表示對應的磁盤塊空閒可供使用。根據查到的位所在的字號和位號可計算出對應的塊號,同時在該位填上佔用標誌“1”

磁盤塊的回收

當刪除文件歸還存儲空間時,可以根據歸還塊的塊號推算出在位示圖中的位置:

塊號=柱面號×每個柱面中的塊數+磁頭號×每個磁道的塊數+扇區號
字號=[塊號/位示圖中字長]
位號=塊號mod位示圖中字長
  然後把這一位的“1”清成“0”,表示該塊成爲空閒塊了   

文件的使用

主要操作

-文件系統與用戶的接口:第一類是與文件有關的操作命令或作業控制語言中與文件有關的語句,這些構成了必不可少的文件系統的人機接口。第二類是提供給用戶程序使用的文件類系統調用指令,構成了用戶和文件系統的另一個接口,通過這些指令用戶能獲得文件系統的各種服務
-一般地講,文件系統提供的基本的文件系統調用有:建立、打開、關閉、刪除、讀、寫和控制等操作

文件共享

文件共享可以提高文件的利用率,避免存儲空間的浪費,並能實現用戶用自己的文件名去訪問共享文件

繞道法

用戶對所有文件的訪問都是相對於當前目錄進行的,當所訪問的共享文件不在當前目錄下時,從當前目錄
出發向上返回到與共享文件所在路徑的交叉點,再沿路徑下行到共享文件
-繞道法要求用戶指定到達被共享文件的路徑,並要回溯訪問多級目錄,因此,共享其他目錄下的文件的搜索速度較慢

鏈接法

鏈接法是將一個目錄中的鏈指針直接指向共享文件的目錄項

基本文件目錄

該方法在文件目錄分解爲基本目錄和符號目錄前提下實現的,只要在不同文件符號目錄中使用相同文件內部標識符,就可實現文件的共享

利用符號鏈實現文件共享

用戶H爲了共享用戶C的—個文件f,可以由系統創建一個LINK類型的新文件,將新文件寫入H的用戶目錄中,在新文件中只包含被鏈接文件f的路徑名,稱這樣的鏈接方法爲符號鏈接。當H要訪問被鏈接的文件f且正要讀LINK類新文件時,被操作系統截獲,操作系統根據新文件中的路徑名去讀該文件,於是就實現了用戶H對文件f的共享

基本索引結點的共享方式

文件的物理地址及其它的文件屬性等信息,不再放在目錄項中,而是放在索引結點中。在文件目錄中只設置文件名及指向相應索引結點的指針,此時,由任何用戶對文件進行追加操作或修改,所引起的相應索引結點內容的改變,例如,增加了新的盤塊號和文件長度等,都是其他用戶可見的,從而也就能提供給其他用戶來共享。

影響文件安全性主要因素

-人爲因素。由於人們有意或無意的行爲,而使文件系統中的數據遭到破壞、丟失或竊取
-系統因素。由於系統的部分出現異常情況而造成對數據的破壞或丟失,特別是作爲數據存儲介質的磁盤在出現故障或損壞時,會對文件系統的安全性造成影響
-自然因素。存放在磁盤上的數據,隨着時間的推移而發生溢出或逐漸消失

防止人爲因素造成的文件不安全性

隱蔽文件和目錄

系統和用戶將要保護的文件目錄隱蔽起來,在顯示文件目錄信息時由於不知道文件名而無法使用

口令
    -文件口令:系統要求文件的建立者爲他需要保密的文件設置一個口令
    -用戶口令:當用戶利用計算機終端使用計算機時使用
文件加密
    對於高度機密的文件,可採用加密碼的措施。文件加密碼是把文件中所有字符代碼,按某種變換規則重新編碼。文件的輸入讀出都經過編碼程序和解碼程序處理 

制定訪問權限
-存取控制矩陣:由系統中的全部用戶和全部文件組成的二維矩陣,所以也稱爲存取控制矩陣,矩陣的每個元素表示用戶對文件的使用權限
-存取控制表和用戶權限表:存取控制表就是對存取控制矩陣中的一行進行壓縮,可讓每一個文件附加一個簡單的表格,它規定了對該文件的可訪問性(權限);用戶權限表就是對存取控制矩陣中的一按列進行壓縮,該表中列出該用戶對每個文件的訪問權限

防止系統因素或自然因素造成的文件不安全性

壞塊管理

-硬件方法:建立一個壞塊表,在硬盤上爲壞塊表分配—個扇區,當控制器第一次被初始化時,它讀壞塊表並找一個空閒塊(或磁道)代替有問題的塊,並在壞塊表中記錄映射
-軟件辦法:要求用戶或文件系統構造一個包含全部壞塊的文件

磁盤容錯技術

磁盤容錯技術是通過增加冗餘的磁盤驅動器、磁盤控制器等來提高磁盤系統的可靠性,從而在磁盤系統的某部分出現缺陷或故障時,磁盤仍能正常工作,不會造成數據的錯誤和丟失。

分爲三個級別:
SFT-I是低級磁盤容錯技術
SFT-Ⅱ是中級磁盤容錯技術
SFT-Ⅲ是高級系統容錯故術                                                                      
備份

-建立副本:把同一個文件保存到多個存儲介質上,當某個文件損壞或丟失時,就可用其他存儲介質上的備用副本來替換
-轉儲:海量轉儲、增量轉儲(這讓我想到了:段錯誤:核心已轉儲)

提高文件系統的性能措施有如下幾種:塊高速緩存、磁盤空間的合理分配和對磁盤調度算法進行優化

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