操作系統(tǒng)基礎(chǔ)之文件管理

文件管理

背景以及意義

在使用計算機的過程中姑尺,需要大量的程序以及數(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ù)的容錯能力
      • 雙機熱備份模式
      • 雙機互為備份模式
      • 公用磁盤模式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末因俐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子周偎,更是在濱河造成了極大的恐慌抹剩,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓉坎,死亡現(xiàn)場離奇詭異澳眷,居然都是意外死亡,警方通過查閱死者的電腦和手機蛉艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門钳踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伺通,你說我怎么就攤上這事》晗恚” “怎么了罐监?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞒爬。 經(jīng)常有香客問我弓柱,道長沟堡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任矢空,我火速辦了婚禮航罗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屁药。我一直安慰自己粥血,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布酿箭。 她就那樣靜靜地躺著复亏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缭嫡。 梳的紋絲不亂的頭發(fā)上缔御,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機與錄音妇蛀,去河邊找鬼耕突。 笑死,一個胖子當(dāng)著我的面吹牛评架,可吹牛的內(nèi)容都是我干的眷茁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼古程,長吁一口氣:“原來是場噩夢啊……” “哼蔼卡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挣磨,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雇逞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茁裙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塘砸,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年晤锥,在試婚紗的時候發(fā)現(xiàn)自己被綠了掉蔬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡矾瘾,死狀恐怖女轿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壕翩,我是刑警寧澤蛉迹,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站放妈,受9級特大地震影響北救,放射性物質(zhì)發(fā)生泄漏荐操。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一珍策、第九天 我趴在偏房一處隱蔽的房頂上張望托启。 院中可真熱鬧,春花似錦攘宙、人聲如沸屯耸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肩民。三九已至,卻和暖如春链方,著一層夾襖步出監(jiān)牢的瞬間持痰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工祟蚀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留工窍,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓前酿,卻偏偏與公主長得像患雏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子罢维,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容