操作系统(四)文件管理
操作系統(tǒng)(四)文件管理
- 一、文件系統(tǒng)基礎(chǔ)
- 1.文件邏輯結(jié)構(gòu)
- 無結(jié)構(gòu)文件
- 有結(jié)構(gòu)文件
- 2.文件目錄
- 文件控制塊(FCB)
- 目錄結(jié)構(gòu)
- 單級(jí)目錄
- 兩級(jí)目錄結(jié)構(gòu)
- 多級(jí)目錄結(jié)構(gòu)
- 無環(huán)圖目錄結(jié)構(gòu)
- 3.文件保護(hù)
- 口令保護(hù)
- 加密保護(hù)
- 訪問控制
- 4.文件共享
- 硬鏈接
- 軟鏈接
- 5.文件系統(tǒng)實(shí)現(xiàn)
- 文件物理結(jié)構(gòu)
- 連續(xù)分配
- 鏈接分配
- 隱式鏈接
- 顯式鏈接
- 索引分配
- 6.文件存儲(chǔ)空間管理
- 7.文件系統(tǒng)的層次結(jié)構(gòu)
- 8.磁盤結(jié)構(gòu)
- 9.磁盤調(diào)度算法
- 先來先服務(wù)算法(FCFS)
- 最短尋找時(shí)間優(yōu)先(SSTF)
- 掃描算法(SCAN)
- LOOK 調(diào)度算法
- 循環(huán)掃描算法(C-SCAN)
- C-LOOK 調(diào)度算法
一、文件系統(tǒng)基礎(chǔ)
1.文件邏輯結(jié)構(gòu)
無結(jié)構(gòu)文件
無結(jié)構(gòu)文件:文件內(nèi)部的數(shù)據(jù)就是一系列二進(jìn)制流或字符流組成。又稱“流式文件”。如:Windows 操作系統(tǒng)中的 .txt 文件。
有結(jié)構(gòu)文件
有結(jié)構(gòu)文件:由一組相似的記錄組成,又稱“記錄式文件”。每條記錄又若干個(gè)數(shù)據(jù)項(xiàng)組成。如:數(shù)據(jù)庫表文件。一般來說,每條記錄有一個(gè)數(shù)據(jù)項(xiàng)可作為關(guān)鍵字(作為識(shí)別不同記錄的ID)
有結(jié)構(gòu)文件分為順序文件、索引文件、索引順序文件和直接文件或散列文件
順序文件:
定長記錄的順序文件,若物理上采用順序存儲(chǔ),則可實(shí)現(xiàn)隨機(jī)存取;若能再保證記錄的順序結(jié)構(gòu),則可實(shí)現(xiàn)快速檢索(即根據(jù)關(guān)鍵字快速找到對應(yīng)記錄)
索引文件:
索引表本身是定長記錄的順序文件。因此可以快速找到第 i 個(gè)記錄對應(yīng)的索引項(xiàng)。可將關(guān)鍵字作為索引號(hào)內(nèi)容,若按關(guān)鍵字順序排列,則還可以支持按照關(guān)鍵字折半查找。每當(dāng)要增加/刪除一個(gè)記錄時(shí),需要對索引表進(jìn)行修改。由于索引文件有很快的檢索速度,因此主要用于對信息處理的及時(shí)性要求比較高的場合
索引順序文件:
索引順序文件是索引文件和順序文件思想的結(jié)合。索引順序文件中,同樣會(huì)為文件建立一張索引表,但不同的是:并不是每個(gè)記錄對應(yīng)一個(gè)索引表項(xiàng),而是一組記錄對應(yīng)一個(gè)索引表項(xiàng)。
多級(jí)索引順序文件:
2.文件目錄
文件控制塊(FCB)
FCB 的有序集合稱為“文件目錄”,一個(gè)FCB就是一個(gè)文件目錄項(xiàng)。FCB 中包含了文件的基本信息(文件名、物理地址、邏輯結(jié)構(gòu)、物理結(jié)構(gòu)等),存取控制信息(是否可讀/可寫、禁止訪問的用戶名單等),使用信息(如文件的建立時(shí)間、修改時(shí)間等)。最重要,最基本的還是文件名、文件存放的物理地址。
目錄結(jié)構(gòu)
單級(jí)目錄
單級(jí)目錄實(shí)現(xiàn)了“按名存取”,但是不允許文件重名。在創(chuàng)建一個(gè)文件時(shí),需要先檢查目錄表中有沒有重名文件,確定不重名后才能允許建立文件,并將新文件對應(yīng)的目錄項(xiàng)插入目錄表中
兩級(jí)目錄結(jié)構(gòu)
多級(jí)目錄結(jié)構(gòu)
無環(huán)圖目錄結(jié)構(gòu)
可以用不同的文件名指向同一個(gè)文件,甚至可以指向同一個(gè)目錄(共享同一目錄下的所有內(nèi)容)。需要為每個(gè)共享結(jié)點(diǎn)設(shè)置一個(gè)共享計(jì)數(shù)器,用于記錄此時(shí)有多少個(gè)地方在共享該結(jié)點(diǎn)。用戶提出刪除結(jié)點(diǎn)的請求時(shí),只是刪除該用戶的FCB、并使共享計(jì)數(shù)器減1,并不會(huì)直接刪除共享結(jié)點(diǎn)。只有共享計(jì)數(shù)器減為0時(shí),才刪除結(jié)點(diǎn)。
注意:共享文件不同于復(fù)制文件。在共享文件中,由于各用戶指向的是同一個(gè)文件,因此只要其中一個(gè)用戶修改了文件數(shù)據(jù),那么所有用戶都可以看到文件數(shù)據(jù)的變化。
3.文件保護(hù)
口令保護(hù)
為文件設(shè)置一個(gè)“口令”(如:abc112233),用戶請求訪問該文件時(shí)必須提供“口令”。口令一般存放在文件對應(yīng)的 FCB 或索引結(jié)點(diǎn)中。用戶訪問文件前需要先輸入“口令”,操作系統(tǒng)會(huì)將用戶提供的口令與FCB中存儲(chǔ)的口令進(jìn)行對比,如果正確,則允許該用戶訪問文件
優(yōu)點(diǎn):保存口令的空間開銷不多,驗(yàn)證口令的時(shí)間開銷也很小。
缺點(diǎn):正確的“口令”存放在系統(tǒng)內(nèi)部,不夠安全。
加密保護(hù)
用某個(gè)“密碼”對文件進(jìn)行加密,在訪問文件時(shí)需要提供正確的“密碼”才能對文件進(jìn)行正確的解密。
例如:一個(gè)最簡單的加密算法——異或加密
假設(shè)用于加密/解密的“密碼”為“01001”
優(yōu)點(diǎn):保密性強(qiáng),不需要在系統(tǒng)中存儲(chǔ)“密碼”
缺點(diǎn):編碼/譯碼,或者說加密/解密要花費(fèi)一定時(shí)間。
訪問控制
在每個(gè)文件的FCB(或索引結(jié)點(diǎn))中增加一個(gè)訪問控制列表(Access-Control List, ACL),該表中記錄了各個(gè)用戶可以對該文件執(zhí)行哪些操作。
4.文件共享
硬鏈接
索引結(jié)點(diǎn)中設(shè)置一個(gè)鏈接計(jì)數(shù)變量 count,用于表示鏈接到本索引結(jié)點(diǎn)上的用戶目錄項(xiàng)數(shù)。
若 count = 2,說明此時(shí)有兩個(gè)用戶目錄項(xiàng)鏈接到該索引結(jié)點(diǎn)上,或者說是有兩個(gè)用戶在共享此文件。
若某個(gè)用戶決定“刪除”該文件,則只是要把用戶目錄中與該文件對應(yīng)的目錄項(xiàng)刪除,且索引結(jié)點(diǎn)的count值減 1。
若 count>0,說明還有別的用戶要使用該文件,暫時(shí)不能把文件數(shù)據(jù)刪除,否則會(huì)導(dǎo)致指針懸空。
當(dāng) count = 0 時(shí)系統(tǒng)負(fù)責(zé)刪除文件。
軟鏈接
當(dāng) User3 訪問“ccc”時(shí),操作系統(tǒng)判斷文件“ccc”屬于 Link 類型文件,于是會(huì)根據(jù)其中記錄的路徑層層查找目錄,最終找到 User1 的目錄表中的“aaa”表項(xiàng),于是就找到了文件1的索引結(jié)點(diǎn)。
5.文件系統(tǒng)實(shí)現(xiàn)
文件物理結(jié)構(gòu)
磁盤塊:
連續(xù)分配
鏈接分配
隱式鏈接
用戶給出要訪問的邏輯塊號(hào) i,操作系統(tǒng)找到該文件對應(yīng)的目錄項(xiàng)(FCB),從目錄項(xiàng)中找到起始?jí)K號(hào)(即0號(hào)塊),將0號(hào)邏輯塊讀入內(nèi)存,由此知道1號(hào)邏輯塊存放的物理塊號(hào),于是讀入1號(hào)邏輯塊,再找到2號(hào)邏輯塊的存放位置……以此類推。因此,讀入i號(hào)邏輯塊,總共需要 i+1 次磁盤I/O。
結(jié)論:采用鏈?zhǔn)椒峙?#xff08;隱式鏈接)方式的文件,只支持順序訪問,不支持隨機(jī)訪問,查
找效率低。另外,指向下一個(gè)盤塊的指針也需要耗費(fèi)少量的存儲(chǔ)空間。
顯式鏈接
索引分配
6.文件存儲(chǔ)空間管理
文件空間劃分:
文件空間管理:
空閑表法、空閑鏈表法不適用于大型文件系統(tǒng),因?yàn)榭臻e表或空閑鏈表可能過大。UNIX系統(tǒng)中采用了成組鏈接法對磁盤空閑塊進(jìn)行管理。
文件卷的目錄區(qū)中專門用一個(gè)磁盤塊作為“超級(jí)塊”,當(dāng)系統(tǒng)啟動(dòng)時(shí)需要將超級(jí)塊讀入內(nèi)存。并且要保證內(nèi)存與外存中的“超級(jí)塊”數(shù)據(jù)一致。
7.文件系統(tǒng)的層次結(jié)構(gòu)
8.磁盤結(jié)構(gòu)
9.磁盤調(diào)度算法
先來先服務(wù)算法(FCFS)
最短尋找時(shí)間優(yōu)先(SSTF)
掃描算法(SCAN)
LOOK 調(diào)度算法
循環(huán)掃描算法(C-SCAN)
C-LOOK 調(diào)度算法
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的操作系统(四)文件管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lol英雄联盟打野的经验,金币多吗???
- 下一篇: 输卵管弯曲好治吗