文件管理
背景以及意義
在使用計算機的過程中姑尺,需要大量的程序以及數(shù)據(jù)路星,而內(nèi)存的容量有限,并且不能長期保存數(shù)據(jù)匹中,于是便將數(shù)據(jù)以文件的形式保存在外存中。隨著而來就又出現(xiàn)了新的問題了豪诲,如果直接將數(shù)據(jù)保存在外存中顶捷,用戶直接面向磁盤進行操作,就會帶來很多的問題屎篱,比如:要求用戶熟悉磁盤的結(jié)構(gòu)服赎,了解各種文件的屬性,在磁盤上的具體位置交播,在多用戶環(huán)境下還必須保持?jǐn)?shù)據(jù)的安全性以及一致性重虑,這是非常麻煩的事情,于是秦士,就在操作系統(tǒng)中引入了文件管理的概念缺厉,也就是構(gòu)建一個文件系統(tǒng),專門用于文件的管理隧土、組織工作提针,并且提供簡單、方便的操作給用戶曹傀。
文件以及文件系統(tǒng)
文件
文件可以通俗地理解為就是一堆數(shù)據(jù)的集合关贵,可以分為有結(jié)構(gòu)文件以及無結(jié)構(gòu)文件(流式文件),文件自身具有一些屬性卖毁,如:文件類型揖曾、文件長度落萎、文件的物理位置、建立時間等炭剪。
文件類型
劃分文件類型的目的是為了更好地管理文件练链,按照不同的分類,可以將文件類型進行不同的劃分
- 按照用途劃分
- 系統(tǒng)文件
- 用戶文件
- 庫文件
- 按照文件中數(shù)據(jù)的形式劃分
- 源文件
- 目標(biāo)文件
- 可執(zhí)行文件
- 按照存取控制權(quán)限劃分
- 只執(zhí)行文件
- 只讀文件
- 讀寫文件
- 按照組織形式和處理方式劃分
- 普通文件
- 二進制文件
- 特殊文件
文件系統(tǒng)模型
文件系統(tǒng)一般劃分為三個層次:從上到下分別是:文件系統(tǒng)接口 - 對對象操作和管理的軟件集合 - 對象(文件奴拦、目錄媒鼓、磁盤)及屬性
文件操作
創(chuàng)建文件、刪除文件错妖、讀文件绿鸣、寫文件、打開文件暂氯、關(guān)閉文件潮模、對文件屬性的操作、對目錄的操作等
文件的邏輯結(jié)構(gòu)
所謂的文件的邏輯結(jié)構(gòu)痴施,是指從用戶的觀點出發(fā)所看到的文件的組織形式擎厢,是用戶可以直接處理的數(shù)據(jù)及結(jié)構(gòu),跟具體的物理存儲結(jié)構(gòu)沒有關(guān)系辣吃,也稱為文件的組織动遭,分為有結(jié)構(gòu)文件(記錄式文件)、無結(jié)構(gòu)文件(流式文件)
對于文件的邏輯結(jié)構(gòu)神得,有一些基本的要求
- 能提高檢索速度:在大文件中檢索數(shù)據(jù)
- 便于修改:在文件中增加厘惦、刪除、修改記錄
- 降低文件的存儲費用:減少文件占用的磁盤空間哩簿、不要求大片的連續(xù)存儲空間
有結(jié)構(gòu)文件
有結(jié)構(gòu)文件根據(jù)用于和系統(tǒng)管理的需要绵估,根據(jù)組織形式的不同,可以分為一下幾種
- 順序文件:文件中的記錄按照某種順序排列而成卡骂,記錄一般是指定長的記錄,能用較快的速度查找文件中的記錄
- 索引文件:為變長記錄建立索引表形入,并且為每個記錄設(shè)置一個表項全跨,用于加快檢索速度
- 索引順序文件:為文件建立索引表,為每一組記錄中的第一個記錄設(shè)置一個表項
順序文件
兩種不同的排序方式:串結(jié)構(gòu)(基本按照時間排序)亿遂、順序結(jié)構(gòu)(按照關(guān)鍵字進行排序)
順序文件中浓若,如果是定長記錄,則訪問可以按照頭指針加偏移即可蛇数;如果是不定長記錄挪钓,則每個記錄需要保存多一個指針,用于保存當(dāng)前文件的長度
優(yōu)點:讀取效率高耳舅,尤其是在大文件的情況下
缺點:文件比較大是碌上,查找某幾個記錄速度慢倚评,增加、刪除操作比較困難馏予√煳啵可以設(shè)置一個記錄日志/事務(wù)文件,將具體操作記錄下來霞丧,在一定時間內(nèi)統(tǒng)一處理(延遲操作)
索引文件
為文件中的記錄建立索引表呢岗,每個表項用于記錄:記錄的長度、指向該記錄的指針蛹尝。檢索時后豫,先根據(jù)關(guān)鍵字檢索索引表,然后再根據(jù)索引表中的指針讀取對應(yīng)的文件
優(yōu)點:檢索速度快
缺點:增加了一個索引項突那,所以增加了費用
索引順序文件
克服了變長記錄文件的不便于存取的缺點挫酿,而且付出的代價也不算大
將順序文件的所有記錄進行分組:為順序文件建立一張索引表,索引表中為每組的第一個記錄建立一個索引項陨收,含有該記錄的鍵值和指向該記錄的指針饭豹。在檢索時,先利用關(guān)鍵字在索引表中進行檢索务漩,然后找到該記錄所在記錄組中第一個記錄的表項拄衰,從而得到該記錄組的地址,然后再用順序索查找方式在主文件中進行查找饵骨,對于大文件翘悉,更是可以建立多級索引從而提高檢索速度
外存分配方式
常見用外存分配方式有連續(xù)分配、鏈接分配居触、索引分配
連續(xù)分配
連續(xù)分配即為每個文件分配一組連續(xù)/相鄰接的磁盤塊妖混,保證了邏輯文件中的記錄順序與存儲中所占用的盤塊順序一致
優(yōu)點:順序訪問容易、訪問速度快
缺點:要求有連續(xù)的存儲空間轮洋、必須事先知道文件的大小
鏈接分配
鏈接分配采用離散的分配方式制市,消除了碎片問題,提高了利用率弊予,同時也適應(yīng)文件的動態(tài)增長祥楣、刪除、修改等
隱式鏈接
在文件目錄的每個目錄項中汉柒,都含有鏈接文件第一個盤塊以及最后一個盤塊误褪,而且每個盤塊都含有指向下一個盤塊的指針
缺點:只適合順序訪問,每次讀寫都必須從起始盤塊開始碾褂、僅通過一個鏈接指針將盤塊鏈接起來兽间,如果其中一個鏈接出錯,整個鏈就斷開
顯式鏈接
把鏈接各個物理盤塊的指針正塌,顯示地存放在內(nèi)存中的一個鏈接表(FAT File Allocation Table)上嘀略,將鏈?zhǔn)字羔標(biāo)鶎?yīng)的盤塊存放在FCB中
缺點:FAT需要占用比較大的內(nèi)存空間
索引分配
索引分配為每個文件分配一個索引塊恤溶,再把分配給該文件的所有盤塊號都記錄在該索引塊中,在建立一個文件時屎鳍,只需要為之建立的目錄項中填入指向該索引塊的指針
缺點:對于小文件來說宏娄,索引塊的利用率比較低
常見分配方式:單級索引、多級索引逮壁、混合索引(多種索引分配方式混合而成)
目錄管理
對目錄的要求
- 實現(xiàn)按名存确跫帷:提供名字即可快速找到文件所在磁盤
- 提高對目錄的檢索速度
- 文件共享
- 允許文件重命名
文件控制塊和索引節(jié)點
文件控制塊中的信息
- 基本信息:文件名、文件物理位置窥淆、文件邏輯結(jié)構(gòu)卖宠、文件的物理結(jié)構(gòu)
- 存取控制信息:文件主的權(quán)限、核準(zhǔn)用戶的權(quán)限以及一般用戶的權(quán)限
- 使用信息:文件的建立時間忧饭、修改時間等
一個文件控制塊就是一個目錄項扛伍,文件控制塊的集合就是一個目錄
索引節(jié)點:將文件描述信息與文件名分離,使文件描述信息單獨形成一個數(shù)據(jù)結(jié)構(gòu)
文件系統(tǒng)中每個目錄項僅由文件名和指向文件所對應(yīng)的inode節(jié)點的指針
文件目錄結(jié)構(gòu)
單級結(jié)構(gòu)词裤、兩級結(jié)構(gòu)刺洒、多級結(jié)構(gòu)
文件存儲空間的管理
用于記錄磁盤空間的使用情況,便于更好地進行分配
空閑表法以及空閑鏈表法
空閑表法
空閑表法屬于連續(xù)分配吼砂,系統(tǒng)為外存上的所有空間建立一張空閑表逆航,每個空閑區(qū)對應(yīng)一個空閑表項
分配時采用首次適應(yīng)算法、循環(huán)首次適應(yīng)算法等
空閑鏈表法
將空閑鏈分為:空閑盤塊鏈渔肩、空閑盤區(qū)鏈
位圖法
通過位圖(二進制的一個位)來表示磁盤使用情況
成組鏈接法
文件共享與保護
- 基于索引節(jié)點的共享方式
- 利用符號鏈實現(xiàn)文件共享
- 磁盤容錯技術(shù)
- 第一級容錯技術(shù)
- 雙份目錄和雙份文件分配表
- 熱修復(fù)重定向和后讀寫校驗
- 第二級容錯技術(shù)
- 磁盤鏡像
- 磁盤雙工
- 基于集群技術(shù)的容錯能力
- 雙機熱備份模式
- 雙機互為備份模式
- 公用磁盤模式
- 第一級容錯技術(shù)