第四章 文件系統(tǒng)
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、寒亭ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的寒亭網(wǎng)站制作公司
文件是進(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)的布局:磁盤(pán)的0號(hào)扇區(qū)稱(chēng)為主引導(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ū),讀入它的的一塊,稱(chēng)為引導(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)類(lèi)型用的魔術(shù),文件系統(tǒng)中數(shù)據(jù)塊的數(shù)量以及其他重要的管理信息
文件實(shí)現(xiàn):
1. 連續(xù)分配,優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單、讀操作性能較好;缺點(diǎn):容易產(chǎn)生磁盤(pán)碎片
2. 鏈表分配:每塊的第一個(gè)字作為指向下一個(gè)塊的指針。該方法盡管順序讀取非常方便,但隨機(jī)存取卻相當(dāng)緩慢,另外由于指針占用了額外的空間導(dǎo)致每個(gè)磁盤(pán)塊不再是2的整數(shù)次冪,這種怪異的大小大大的降低了系統(tǒng)的性能(許多程序都是以2的整數(shù)次冪來(lái)讀取磁盤(pán)的。
3. 在內(nèi)存中采用鏈表分配:取出2中的磁盤(pán)塊的指針,放入內(nèi)存中的一個(gè)表中。這個(gè)表叫做文件分配表(FAT),缺點(diǎn),整個(gè)表放入內(nèi)存中
4. i節(jié)點(diǎn):記錄文件分別屬于那些磁盤(pán)塊,列出了文件屬性和文件塊的磁盤(pán)地址,給定i節(jié)點(diǎn),只有文件打開(kāi)時(shí),文件的i節(jié)點(diǎn)才會(huì)存在內(nèi)存中,最后一個(gè)磁盤(pán)塊地址不是指向數(shù)據(jù)塊而是指向一個(gè)包含磁盤(pán)塊地址的塊的地址
目錄實(shí)現(xiàn)
1. 較好的一個(gè)方案是:文件項(xiàng)包含一個(gè)指向文件名的地址和文件的屬性,對(duì)于長(zhǎng)目錄,線(xiàn)性搜索的方法太慢了,加快查找速度的一個(gè)方法是使用散列表
共享文件
1. 連接(link):特定目錄與共享文件之間的聯(lián)系稱(chēng)為一個(gè)連接。
2. 文件系統(tǒng)本身是一個(gè)無(wú)環(huán)圖,而不是一棵樹(shù)
3. 為了解決在共享文件中單個(gè)文件寫(xiě)入數(shù)據(jù),違背了共享文件的目的,Unix采取的方法是i節(jié)點(diǎn),即磁盤(pá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è)磁盤(pán)結(jié)構(gòu)化為一日志
2. 每隔一段時(shí)間,或是有特殊需要時(shí),被緩沖在內(nèi)存中的所有未決的寫(xiě)操作都被放到一個(gè)單獨(dú)的段中,作為在日志末尾的一個(gè)鄰接段寫(xiě)入磁盤(pán)
3. 日志文件系統(tǒng)有一個(gè)清理線(xiàn)程,該線(xiàn)程周期地掃描日志進(jìn)行磁盤(pán)壓縮
4. 整個(gè)磁盤(pán)成為一個(gè)大的環(huán)形緩沖區(qū),寫(xiě)線(xiàn)程將新的段寫(xiě)在前面,而清理進(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è)不同的接口:上層用戶(hù)進(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.記錄空閑塊,方案一:采用磁盤(pán)塊鏈表,方案二:使用位圖
4.磁盤(pán)配額:管理員分配給每個(gè)用戶(hù)擁有文件和塊的最大數(shù)量,操作系統(tǒng)確保每個(gè)用戶(hù)不超過(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ǔ):從磁盤(pán)的第0塊開(kāi)始,將全部的磁盤(pán)塊按序輸出到磁帶上,直到最后一塊復(fù)制完畢;邏輯轉(zhuǎn)儲(chǔ):從一個(gè)或幾個(gè)指定的目錄開(kāi)始,遞歸地轉(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ò)的塊立即寫(xiě)回磁盤(pán),系統(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,它采用的做法是,只要被寫(xiě)進(jìn)告訴緩沖,就把每個(gè)被修改的塊寫(xiě)入磁盤(pán)。將緩沖中所有被修改的塊立即寫(xiě)回磁盤(pán)稱(chēng)為通寫(xiě)高速緩沖。同非通寫(xiě)緩沖相比,通寫(xiě)緩沖需要更多的磁盤(pán)IO
2)塊提前讀
3)減少磁盤(pán)臂運(yùn)動(dòng)
把可能順序存取的塊放在一起,當(dāng)然最好在同一個(gè)柱面上,從而減少磁盤(pán)臂的移動(dòng)次數(shù)
磁盤(pán)碎片整理:移動(dòng)文化使它們相鄰,并把所有的(至少是大部分)空閑空間放在一個(gè)或多個(gè)大的連續(xù)的區(qū)域內(nèi)。Windos有一個(gè)程序defrag從事這項(xiàng)工作。
文件系統(tǒng)實(shí)例:
1.CD-ROM,為一次性寫(xiě)介質(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ǎng)站欄目:文件系統(tǒng)
網(wǎng)頁(yè)網(wǎng)址:http://www.ekvhdxd.cn/article6/podhig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、外貿(mào)建站、面包屑導(dǎo)航、全網(wǎng)營(yíng)銷(xiāo)推廣、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
全網(wǎng)營(yíng)銷(xiāo)推廣知識(shí)