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