第四章 文件系統(tǒng)
目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、迎江網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。文件是進程創(chuàng)建的信息邏輯單元
目錄是管理文件系統(tǒng)結構的系統(tǒng)文件
在Unix中,路徑各部分之間用“/”分割,在Windows中,分隔符是“\”,在Multics中是“>”
不管哪一種分隔符,如果路徑名的第一個字符是分隔符,則這個路徑是絕對路徑
支持層次目錄結構的大多數(shù)操作系統(tǒng)在每個目錄中都有兩個特殊的目錄項,“.”和“..”,常讀作“dot”和“dotdot”,“dot”指當前目錄,“dotdot”指父目錄(在根目錄中例外,根目錄中它指向自己。
在刪除目錄的時候,在只有空目錄可以調(diào)用刪除目錄,來刪除
文件系統(tǒng)的實現(xiàn)
文件系統(tǒng)的布局:磁盤的0號扇區(qū)稱為主引導記錄(MBR),用來引導計算機,在MBR結尾時分區(qū)表,該表給出了每個分區(qū)的起始地址標,表中的一個分區(qū)被標記為活動分區(qū),在計算機被引導時,BIOS讀入并執(zhí)行MBR。MBR做的第一件事就是確定活動分區(qū),讀入它的的一塊,稱為引導塊,并執(zhí)行之。除此之外,還有一個超級塊,超級塊包含文件系統(tǒng)的所有關鍵參數(shù),在計算機啟動時,或者該文件系統(tǒng)首次使用時,把超級塊讀入內(nèi)存。超級塊中的典型信息包括:確定文件系統(tǒng)類型用的魔術,文件系統(tǒng)中數(shù)據(jù)塊的數(shù)量以及其他重要的管理信息
文件實現(xiàn):
1. 連續(xù)分配,優(yōu)點:實現(xiàn)簡單、讀操作性能較好;缺點:容易產(chǎn)生磁盤碎片
2. 鏈表分配:每塊的第一個字作為指向下一個塊的指針。該方法盡管順序讀取非常方便,但隨機存取卻相當緩慢,另外由于指針占用了額外的空間導致每個磁盤塊不再是2的整數(shù)次冪,這種怪異的大小大大的降低了系統(tǒng)的性能(許多程序都是以2的整數(shù)次冪來讀取磁盤的。
3. 在內(nèi)存中采用鏈表分配:取出2中的磁盤塊的指針,放入內(nèi)存中的一個表中。這個表叫做文件分配表(FAT),缺點,整個表放入內(nèi)存中
4. i節(jié)點:記錄文件分別屬于那些磁盤塊,列出了文件屬性和文件塊的磁盤地址,給定i節(jié)點,只有文件打開時,文件的i節(jié)點才會存在內(nèi)存中,最后一個磁盤塊地址不是指向數(shù)據(jù)塊而是指向一個包含磁盤塊地址的塊的地址
目錄實現(xiàn)
1. 較好的一個方案是:文件項包含一個指向文件名的地址和文件的屬性,對于長目錄,線性搜索的方法太慢了,加快查找速度的一個方法是使用散列表
共享文件
1. 連接(link):特定目錄與共享文件之間的聯(lián)系稱為一個連接。
2. 文件系統(tǒng)本身是一個無環(huán)圖,而不是一棵樹
3. 為了解決在共享文件中單個文件寫入數(shù)據(jù),違背了共享文件的目的,Unix采取的方法是i節(jié)點,即磁盤塊不列入目錄而是列入一個與文件本身相關的小型數(shù)據(jù)結構(i節(jié)點);另一種方案是符號連接:即系統(tǒng)創(chuàng)建一種指向共享文件的新文件(windows系統(tǒng)中的快捷方式)
日志結構文件系統(tǒng)
1. 基本思想是將整個磁盤結構化為一日志
2. 每隔一段時間,或是有特殊需要時,被緩沖在內(nèi)存中的所有未決的寫操作都被放到一個單獨的段中,作為在日志末尾的一個鄰接段寫入磁盤
3. 日志文件系統(tǒng)有一個清理線程,該線程周期地掃描日志進行磁盤壓縮
4. 整個磁盤成為一個大的環(huán)形緩沖區(qū),寫線程將新的段寫在前面,而清理進程則將舊的段從后面移走
虛擬文件系統(tǒng)
1. 思想:抽象出所有文件系統(tǒng)都共有的部分,并且將這部分代碼放到單獨的一層,該層調(diào)用底層的實際文件系統(tǒng)來具體管理數(shù)據(jù)
2. 所有和文件相關的系統(tǒng)調(diào)用在最初的處理上都指向虛擬文件系統(tǒng)
3. 虛擬文件有兩個不同的接口:上層用戶進程的接口和下層給實際文件系統(tǒng)的接口
文件系統(tǒng)管理和優(yōu)化
1.幾乎所有的文件系統(tǒng)都把文件分割成固定的塊大小來存儲,各塊之間不一定相鄰
2.如果分配的單元太大,浪費了空間(再小的文件也會占用整個柱面),如果太小,則浪費了時間(文件跨越多個塊,多次尋道和旋轉(zhuǎn)延遲)
3.記錄空閑塊,方案一:采用磁盤塊鏈表,方案二:使用位圖
4.磁盤配額:管理員分配給每個用戶擁有文件和塊的大數(shù)量,操作系統(tǒng)確保每個用戶不超過分配給他們的配額
5.文件系統(tǒng)備份:處理兩個問題:1)、從意外災難中恢復;2)從錯誤操作中恢復,(windos中的回收站)
6.增量轉(zhuǎn)儲:周期性地做全面的轉(zhuǎn)儲,而在每天只對當天更改的數(shù)據(jù)備份。稍微好一點的做法是只備份最近一次轉(zhuǎn)儲以來更改過的文件。
7.轉(zhuǎn)儲兩種方案:物理轉(zhuǎn)儲,邏輯轉(zhuǎn)儲;物理轉(zhuǎn)儲:從磁盤的第0塊開始,將全部的磁盤塊按序輸出到磁帶上,直到最后一塊復制完畢;邏輯轉(zhuǎn)儲:從一個或幾個指定的目錄開始,遞歸地轉(zhuǎn)儲器自給定基準日期(例如,最近一次增量轉(zhuǎn)儲或全面轉(zhuǎn)儲的日期)后有所更改的全部文件和目錄。
8.文件系統(tǒng)的一致性:很多計算機都帶有一個使用程序以檢查文件的一致性,Unix中是fsck,windos中是scandisk
9.文件系統(tǒng)的性能:
1)高速緩沖,
在Unix中有一個系統(tǒng)調(diào)用sync,它強制性地把全部修改過的塊立即寫回磁盤,系統(tǒng)啟動時,在后臺運行一個通常名為update的程序,它在無限循環(huán)中不斷的執(zhí)行sync調(diào)用,每兩次調(diào)用之間休眠的實現(xiàn)是30秒
在windos中有一個FlushFileBuffers,它采用的做法是,只要被寫進告訴緩沖,就把每個被修改的塊寫入磁盤。將緩沖中所有被修改的塊立即寫回磁盤稱為通寫高速緩沖。同非通寫緩沖相比,通寫緩沖需要更多的磁盤IO
2)塊提前讀
3)減少磁盤臂運動
把可能順序存取的塊放在一起,當然最好在同一個柱面上,從而減少磁盤臂的移動次數(shù)
磁盤碎片整理:移動文化使它們相鄰,并把所有的(至少是大部分)空閑空間放在一個或多個大的連續(xù)的區(qū)域內(nèi)。Windos有一個程序defrag從事這項工作。
文件系統(tǒng)實例:
1.CD-ROM,為一次性寫介質(zhì)設計的
Unix,ISO 9660文件系統(tǒng)標準的基礎上做了一次擴展,Rock Ridge擴展,微軟做的一次擴展是Joliet擴展
2.MS_DOS文件系統(tǒng),它和擴展(FAT-32)一直被許多切入式系統(tǒng)廣泛使用,如數(shù)碼相機等。
3.UnixV7文件系統(tǒng),i節(jié)點采用3級間接塊。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:文件系統(tǒng)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://aaarwkj.com/article22/ddcccc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、網(wǎng)站導航、關鍵詞優(yōu)化、小程序開發(fā)、網(wǎng)站維護、App設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)