操作系統(tǒng)----文件管理_第1頁(yè)
操作系統(tǒng)----文件管理_第2頁(yè)
操作系統(tǒng)----文件管理_第3頁(yè)
操作系統(tǒng)----文件管理_第4頁(yè)
操作系統(tǒng)----文件管理_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第六章 文件管理一概述1.引入文件管理的必要性:計(jì)算機(jī)的兩大功能:計(jì)算和存儲(chǔ)除了利用計(jì)算機(jī)的巨大的計(jì)算能力之外,另一個(gè)主要功能,就是來(lái)存儲(chǔ)大量的數(shù)據(jù)文件系統(tǒng)的功能就是讓人可以方便地存取數(shù)據(jù)o文件系統(tǒng)是平常我們接觸到的最多的功能之一,許多的操作,都是跟文件系統(tǒng)在打交道o比如說(shuō):切換目錄,查看文件,復(fù)制文件,刪除文件o進(jìn)一步說(shuō),內(nèi)存管理,進(jìn)程管理,都和文件系統(tǒng)有密切的聯(lián)系o文件系統(tǒng)可以看做是對(duì)使用磁盤(pán)的抽象,使人們可以不用去管磁盤(pán)具體是如何來(lái)存儲(chǔ),讀取數(shù)據(jù)o文件系統(tǒng)屏蔽了底層的磁盤(pán)使用上面的繁瑣細(xì)節(jié),而用一種簡(jiǎn)單的邏輯結(jié)構(gòu)呈現(xiàn)給用戶(hù)o文件系統(tǒng)的設(shè)計(jì)目標(biāo)-讓用戶(hù)可以?xún)H憑文件名來(lái)操作文件o正式的定義o

2、文件系統(tǒng)的主要功能:提供信息的存儲(chǔ)、檢索、更新、共享、保護(hù),并提供一套文件操作方法o主要功能:文件按名存取目錄的建立與維護(hù)文件的查找與定位文件存儲(chǔ)空間的分配與管理提供文件的存取方法和存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)文件的共享、保護(hù)和保密提供一組易用的文件操作和命令提供與設(shè)備管理交互的統(tǒng)一接口o文件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵點(diǎn):設(shè)計(jì)文件系統(tǒng)的邏輯結(jié)構(gòu)設(shè)計(jì)文件系統(tǒng)的物理結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的映射o簡(jiǎn)單地講,文件系統(tǒng)包括兩大要素:文件:保存的信息的組織形式目錄:保存文件的有關(guān)信息文件系統(tǒng)就是對(duì)文件和目錄的組織和操作2.文件定義:由文件名所標(biāo)識(shí)的一組信息的集合o如果要做到呈獻(xiàn)給用戶(hù)一個(gè)容易使用的文件形式,則要做到以下幾點(diǎn):按名

3、存取實(shí)現(xiàn)安全可靠高效組織存儲(chǔ)空間提供共享功能o與“文件”有關(guān)的基本概念,即普通用戶(hù)的角度的文件的一些邏輯結(jié)構(gòu)要素:文件名、文件類(lèi)型、文件屬性、文件尋址方式、文件內(nèi)容組織、文件格式、文件訪(fǎng)問(wèn)、文件操作等文件名是文件主要的存取根據(jù),文件系統(tǒng)的設(shè)計(jì)目標(biāo)就是能夠按照文件名來(lái)操作文件各個(gè)系統(tǒng)對(duì)文件名有不一樣的安排,比如有些系統(tǒng)有大小寫(xiě)要求,有些對(duì)文件名長(zhǎng)度有要求,有些系統(tǒng)憑后綴名來(lái)識(shí)別文件類(lèi)型,等等o文件名有一個(gè)問(wèn)題,就是可能會(huì)重名,這個(gè)問(wèn)題是通過(guò)“目錄”來(lái)解決的文件類(lèi)型:以L(fǎng)inux為例,一般有以下幾種文件類(lèi)型:普通文件、目錄文件、塊設(shè)備文件,字符設(shè)備文件、管道文件、套接字文件等,他們分別有不同的作用

4、文件屬性比如文件的擁有者、組擁有者、文件權(quán)限、文件的時(shí)間(創(chuàng)建時(shí)間、最后訪(fǎng)問(wèn)時(shí)間、最后修改時(shí)間等)、上鎖標(biāo)志、文件口令等文件尋址方式:一般都是按照文件的位置來(lái)尋找文件,例如文件的路徑,也可以通過(guò)文件的內(nèi)容來(lái)進(jìn)行尋址比如圖片搜索,p2p軟件下載等,均是通過(guò)文件內(nèi)容來(lái)搜索,而非文件名稱(chēng)文件內(nèi)容組織:有結(jié)構(gòu)的文件:文件內(nèi)容組成部分之間是 有一定的結(jié)構(gòu)的無(wú)結(jié)構(gòu)的文件:都以字節(jié)流的形式存放, 具體里面什么內(nèi)容,由應(yīng) 用程序自己來(lái)識(shí)別,內(nèi)核 不管o從內(nèi)核的設(shè)計(jì)角度來(lái)說(shuō),它應(yīng)該只管文件是存哪,怎么取,文件的內(nèi)容是什么,它無(wú)需知道,因此第二種方式更好文件格式有些文件是沒(méi)有特定格式的,比如純文本文件,但另一些文

5、件,需要專(zhuān)門(mén)開(kāi)辟一塊區(qū)域,保存這個(gè)文件某些內(nèi)容是干什么用的比如可執(zhí)行文件的文件頭部,都有專(zhuān)門(mén)的區(qū)域,記錄文件中哪些是代碼部分,哪些是數(shù)據(jù)部分,等等ounix可執(zhí)行文件格式魔數(shù)文本尺寸數(shù)據(jù)尺寸BSS尺寸符號(hào)表尺寸程序入口文本數(shù)據(jù)重定位表符號(hào)表o文件格式往往是一種行業(yè)標(biāo)準(zhǔn),設(shè)計(jì)好之后,由不同廠(chǎng)商開(kāi)發(fā)的軟件來(lái)讀取、處理,實(shí)現(xiàn)信息的共享。文件訪(fǎng)問(wèn):一般來(lái)說(shuō),有順序訪(fǎng)問(wèn)、隨機(jī)訪(fǎng)問(wèn)、索引訪(fǎng)問(wèn)幾種方式o順序訪(fǎng)問(wèn):早期的存儲(chǔ)介質(zhì),如磁帶,只能進(jìn)行順序訪(fǎng)問(wèn),即先訪(fǎng)問(wèn)了前面的內(nèi)容,才能訪(fǎng)問(wèn)之后的內(nèi)容o隨機(jī)訪(fǎng)問(wèn):像磁盤(pán),光盤(pán)這樣的介質(zhì),就可以根據(jù)位置,直接跳到所在的位置,如果文件系統(tǒng)是在內(nèi)存中的話(huà),更是可以實(shí)現(xiàn)隨機(jī)

6、訪(fǎng)問(wèn)o索引訪(fǎng)問(wèn):為加快文件的存取,可以建立索引,通過(guò)索引來(lái)存取文件,這是數(shù)據(jù)庫(kù)文件常用的方式3.目錄簡(jiǎn)單說(shuō)來(lái),目錄就是存放了文件的信息,我們首先通過(guò)目錄,然后才能找到文件o直觀(guān)上看了,目錄中存放了文件,以及其他目錄,從而組成了一個(gè)樹(shù)形結(jié)構(gòu)o每個(gè)目錄都有至少有兩個(gè)特殊的文件:. 指當(dāng)前目錄. 指上級(jí)目錄o于是文件系統(tǒng)的任務(wù)就可以歸納為以下幾個(gè):文件的邏輯結(jié)構(gòu)管理目錄的管理文件的邏輯結(jié)構(gòu)與物理地址的轉(zhuǎn)換o目錄的實(shí)現(xiàn),一般都是采用層次式:整個(gè)目錄組織成類(lèi)似樹(shù)型的結(jié)構(gòu)o目錄也是一種特殊的文件-記錄其他文件信息的文件o為什么需要目錄?目錄是一種數(shù)據(jù)結(jié)構(gòu),用來(lái)記錄文件所在的邏輯位置以及文件其他的一些信息目

7、錄的作用,很類(lèi)似于內(nèi)存管理中,提供給用戶(hù)虛擬地址的這種效果o各種操作系統(tǒng)都有不同的目錄機(jī)制,但都具有一些共同點(diǎn):樹(shù)狀結(jié)構(gòu)具有相對(duì)路徑與絕對(duì)路徑共享與鏈接二文件系統(tǒng)的實(shí)現(xiàn)o對(duì)于普通用戶(hù),只需要關(guān)心怎么使用文件系統(tǒng),而對(duì)操作系統(tǒng)的設(shè)計(jì)者來(lái)說(shuō),更要關(guān)心如何來(lái)實(shí)現(xiàn)用戶(hù)的要求1.設(shè)計(jì)文件系統(tǒng)需要關(guān)注的問(wèn)題:文件系統(tǒng)的布局文件如何實(shí)現(xiàn)目錄如何實(shí)現(xiàn)如何實(shí)現(xiàn)共享磁盤(pán)空間如何管理2.文件系統(tǒng)的布局首先要了解一下磁盤(pán)的大致結(jié)構(gòu),以及磁盤(pán)上的一些特殊的區(qū)域o現(xiàn)在主流的磁盤(pán),是以機(jī)械結(jié)構(gòu)為主的磁盤(pán)o整個(gè)磁盤(pán)由若干圓形的盤(pán)面組成,每個(gè)盤(pán)面都有專(zhuān)門(mén)的磁頭進(jìn)行數(shù)據(jù)讀寫(xiě)o若從抽象觀(guān)點(diǎn)看,整個(gè)磁盤(pán)可以看做一個(gè)連續(xù)的大的數(shù)組主引

8、導(dǎo)程序分區(qū)表分區(qū)1分區(qū)2分區(qū)3引導(dǎo)記錄超級(jí)塊inode區(qū)文件數(shù)據(jù)與目錄55AAMBRo主引導(dǎo)記錄(Main Boot Record):位于磁盤(pán)的最前面的一個(gè)扇區(qū),512字節(jié)o主引導(dǎo)記錄中分成三部分:主引導(dǎo)程序,占446字節(jié)分區(qū)表,占64字節(jié),每個(gè)表項(xiàng)占16字節(jié)魔數(shù),0 x55AAo引導(dǎo)標(biāo)記:如果此標(biāo)記錯(cuò)誤,將無(wú)法啟動(dòng)o分區(qū)表,記錄之后的磁盤(pán)部分分成哪些分區(qū),由于只有4個(gè)表項(xiàng),因此只能有四個(gè)分區(qū)。為了解決這個(gè)問(wèn)題,引入了“擴(kuò)展分區(qū)”和“邏輯分區(qū)”的概念o引導(dǎo)程序:系統(tǒng)剛加電時(shí),BIOS中的程序會(huì)讀取這里面的程序,來(lái)進(jìn)行最初的引導(dǎo)o主引導(dǎo)記錄之后,是一個(gè)一個(gè)的分區(qū),其結(jié)構(gòu)也大致分為兩部分:引導(dǎo)扇區(qū)

9、和數(shù)據(jù)區(qū)o每個(gè)分區(qū)的引導(dǎo)記錄(引導(dǎo)扇區(qū)),跟主引導(dǎo)扇區(qū)很相似,也是512字節(jié),但是不同點(diǎn)是,里面沒(méi)有分區(qū)表。o計(jì)算機(jī)從加電到操作系統(tǒng)啟動(dòng)的過(guò)程接通電源,BIOS中固化的程序開(kāi)始啟動(dòng),首先檢查系統(tǒng)各個(gè)主要設(shè)備,設(shè)置硬件參數(shù)BIOS接下來(lái)載入MBR中的引導(dǎo)程序,該引導(dǎo)程序查看分區(qū)表,看看里面哪些分區(qū)里安裝了操作系統(tǒng),如果有多個(gè)操作系統(tǒng),則讓用戶(hù)選擇用戶(hù)選擇了啟動(dòng)某個(gè)分區(qū)上的操作系統(tǒng),則載入該分區(qū)的引導(dǎo)記錄中的引導(dǎo)程序具體分區(qū)上的引導(dǎo)程序,也是比較小的,它的主要工作,是去該分區(qū)的文件系統(tǒng)中去載入另一個(gè)引導(dǎo)程序第三次載入的引導(dǎo)程序,完成載入內(nèi)核o文件系統(tǒng),首先要建立在磁盤(pán)分區(qū)的這種結(jié)構(gòu),實(shí)際上是位于具

10、體分區(qū)的引導(dǎo)記錄之后的,即上圖中,從超級(jí)塊開(kāi)始的部分o超級(jí)塊:記錄這個(gè)分區(qū)上的文件系統(tǒng)中的主要參數(shù):文件系統(tǒng)類(lèi)型、文件系統(tǒng)數(shù)據(jù)塊尺寸等等主要的信息,它是要被載入內(nèi)存中的。oinode:每個(gè)inode對(duì)應(yīng)于一個(gè)文件,記錄了文件的權(quán)限,修改時(shí)間,引用數(shù)等等信息o根目錄:該分區(qū)上文件系統(tǒng)的根o之后的為具體的數(shù)據(jù),包括文件和目錄3.文件的實(shí)現(xiàn)文件的實(shí)現(xiàn),就是要解決好以下幾個(gè)問(wèn)題:給文件分配磁盤(pán)空間記錄這些空間的位置將文件內(nèi)容存放在這些位置o文件的兩種存放方式:當(dāng)文件內(nèi)容只存在于內(nèi)存中,還未存入磁盤(pán)時(shí),它是一種連續(xù)的流結(jié)構(gòu),當(dāng)存入磁盤(pán)后,有兩種可選的存儲(chǔ)方式o連續(xù)空間存放o非連續(xù)空間存放I.連續(xù)存放這是

11、最簡(jiǎn)單的存放方式,給一個(gè)文件分配一篇連續(xù)的磁盤(pán)空間,文件的數(shù)據(jù)連續(xù)存放好處:讀寫(xiě)效率高不足:空間利用率低,文件內(nèi)容難以擴(kuò)展II.非連續(xù)存放把一個(gè)文件的數(shù)據(jù)分塊,每塊可以獨(dú)立存放,每個(gè)塊都有一個(gè)指針指向下一個(gè)數(shù)據(jù)塊,或者專(zhuān)門(mén)組織一張表,來(lái)記錄某塊的下一個(gè)塊在哪里o方式之一:FAT(File Allocation Table)o比如說(shuō)一個(gè)文件從塊2開(kāi)始,然后塊2中記錄了下一個(gè)塊是6,。依次往下尋找,如果某個(gè)表項(xiàng)是-1,表示內(nèi)容結(jié)束01234567891011126811-1oFAT文件系統(tǒng),就是基于以上的表來(lái)實(shí)現(xiàn)的,具體又分為FAT12、FAT16、FAT32,他們的區(qū)別主要是地址的位數(shù)o該種方法

12、的主要缺點(diǎn)就是FAT占用的空間會(huì)過(guò)大,尤其是在磁盤(pán)容量很大的情況下,因?yàn)楸眄?xiàng)的多少等于磁盤(pán)塊的個(gè)數(shù)o解決的辦法,可以參考分頁(yè)中的辦法o方法之二:i-node 索引方式FAT方法要存儲(chǔ)所有的磁盤(pán)數(shù)據(jù)塊的表項(xiàng),而其中很大一部分可能是空的改進(jìn)的方法是,采用索引的方法,這個(gè)方法與內(nèi)存分頁(yè)管理十分相似,unix上面多采用類(lèi)似的文件系統(tǒng)o每個(gè)文件都分配一個(gè)數(shù)據(jù)結(jié)構(gòu),成為i-node,里面存放了文件邏輯塊與實(shí)際物理塊的對(duì)應(yīng)關(guān)系o當(dāng)要訪(fǎng)問(wèn)某個(gè)文件時(shí),先找到該文件的i-node,然后就可以找到對(duì)應(yīng)的磁盤(pán)塊o跟頁(yè)表類(lèi)似,i-node中還可以存放文件的其他信息三舉例:Minix文件系統(tǒng)1.Linux剛出現(xiàn)的時(shí)候,就

13、采用Minix的文件系統(tǒng),然后在此之上,建立了其他的文件系統(tǒng)Minix文件系統(tǒng)比較簡(jiǎn)單直觀(guān),適合學(xué)習(xí)2.實(shí)現(xiàn)文件系統(tǒng)的第一步:分塊磁盤(pán)是容量較大的設(shè)備,跟內(nèi)存不同內(nèi)存的最小分配單位是字節(jié),而磁盤(pán)一般要用一個(gè)更大的單位來(lái)做分配單位,比如1K,4K等,這個(gè)可以在格式化文件系統(tǒng)的時(shí)候選定3.文件的實(shí)現(xiàn)上一節(jié)講過(guò),可以有三種方法根據(jù)文件大小,分配連續(xù)的塊建立文件分配表(FAT)索引方式:塊與塊之間通過(guò)指針相連,或者建立索引o重點(diǎn)介紹I-Node方式4.目錄的實(shí)現(xiàn)當(dāng)進(jìn)程打開(kāi)一個(gè)文件前,首先要找到這個(gè)文件在哪,內(nèi)核根據(jù)用戶(hù)提供的文件的路徑名,找到相應(yīng)的目錄項(xiàng),目錄項(xiàng)里記錄了該文件的信息對(duì)于不同的文件系統(tǒng)方

14、式,目錄項(xiàng)里記錄了不同的內(nèi)容o連續(xù)分配方案:整個(gè)文件的磁盤(pán)地址o鏈接分配方案:第一個(gè)塊的地址oi-node方案:文件的i-node號(hào)o那么文件的屬性放在哪?o方法1:存在目錄項(xiàng)里o方法2:對(duì)于i-node方式,還可以放在i-node里o舉例:MS-DOS的目錄項(xiàng)的大致結(jié)構(gòu):文件名擴(kuò)展名屬性保留時(shí)間日期第一塊號(hào)長(zhǎng)度831102224o舉例:Unix下的目錄i節(jié)點(diǎn)號(hào)文件名214o注意區(qū)別“目錄”和“目錄項(xiàng)”的區(qū)別,我們平時(shí)看到的是“目錄”,而“目錄項(xiàng)”是它里面的內(nèi)容,一般目錄的大小都是確定的,因此,一個(gè)目錄里面能放的文件也是有限的o以/usr/bin/mbox為例,說(shuō)明如何來(lái)找到這個(gè)文件首先,根目

15、錄/的i-node位于分區(qū)開(kāi)始后的固定位置(0號(hào)inode),所以很容易找到/的i-node,從而得到/目錄里的文件有哪些,然后得到/usr這個(gè)目錄的磁盤(pán)位置o查看/usr這個(gè)目錄項(xiàng),找出其i-node號(hào),然后在i-node區(qū)中根據(jù)i-node號(hào),找到/usr對(duì)應(yīng)的i-node,查看其內(nèi)容,找到/usr/bin目錄項(xiàng)的磁盤(pán)地址o。依次這么尋找,就能找到mbox這個(gè)文件的每一部分具體的磁盤(pán)地址o由i-node這種實(shí)現(xiàn)方式可以看到:只要專(zhuān)門(mén)開(kāi)辟一塊空間存儲(chǔ)各個(gè)i-node,就可以管理在該文件系統(tǒng)下的各個(gè)文件以及他們的地址o另一個(gè)好處是:文件的各個(gè)部分,可以放在不同的磁盤(pán)位置5.磁盤(pán)塊管理磁盤(pán)塊管理

16、包括兩方面:確定磁盤(pán)塊的大小、如何記錄管理空閑塊,如何安排文件存儲(chǔ)塊的位置來(lái)減少讀寫(xiě)磁頭的移動(dòng)o確定磁盤(pán)塊大小是非常影響文件系統(tǒng)性能的o磁盤(pán)塊太大,則利用率不高o磁盤(pán)塊太小,則增加讀寫(xiě)的次數(shù)o正確的確定磁盤(pán)塊容量的方法,是統(tǒng)計(jì)該文件系統(tǒng)中文件的平均尺寸,從而來(lái)確定應(yīng)該采取多大的塊o空閑塊管理:o在一個(gè)文件進(jìn)行保存的第一步,要進(jìn)行空閑塊的申請(qǐng),這時(shí)就牽涉到空閑塊管理o幾種方法:位圖法空閑區(qū)法空閑塊鏈成組空閑塊鏈o如何安排磁盤(pán)占用的塊o在進(jìn)行磁盤(pán)塊分配時(shí),也要考慮這樣安排是否會(huì)有利于磁盤(pán)讀寫(xiě)頭的移動(dòng)o另一方面,再優(yōu)化磁盤(pán)讀寫(xiě)頭,也不如建立緩存機(jī)制來(lái)的有效oLinux系統(tǒng)在運(yùn)行時(shí),通常會(huì)占用比較大的

17、內(nèi)存,原因就是它采用了文件緩存機(jī)制,把當(dāng)時(shí)沒(méi)有用的內(nèi)存拿來(lái)當(dāng)緩存用free命令中可以看到當(dāng)時(shí)的內(nèi)存使用情況四文件系統(tǒng)其他功能的實(shí)現(xiàn)1.文件系統(tǒng)調(diào)用文件系統(tǒng)對(duì)外提供的接口有:文件的建立、打開(kāi)、關(guān)閉、讀、寫(xiě)、控制用戶(hù)通過(guò)這些接口,可以在不了解文件系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)的基礎(chǔ)上,進(jìn)行對(duì)文件的各種操作o以L(fǎng)inux為例:整個(gè)分區(qū)從引導(dǎo)扇區(qū)之后開(kāi)始,為文件系統(tǒng)所在的區(qū)域剩余的部分,包括:超級(jí)塊、索引節(jié)點(diǎn)區(qū)、數(shù)據(jù)區(qū)超級(jí)塊:一般占用一塊。存放文件系統(tǒng)的結(jié)構(gòu)和主要管理信息,包括inode區(qū)所占的塊數(shù)、空閑inode位圖,以及其他重要的信息當(dāng)安裝了一個(gè)文件系統(tǒng)時(shí),超級(jí)塊需要被載入到內(nèi)存當(dāng)中索引節(jié)點(diǎn)區(qū):占用若干塊(與具體情

18、況有關(guān)),每一個(gè)文件都有一個(gè)inode與之對(duì)應(yīng)。當(dāng)打開(kāi)一個(gè)文件時(shí),文件的inode會(huì)被載入到內(nèi)存,成為活動(dòng)inode數(shù)據(jù)區(qū):存放文件、目錄等o為描述進(jìn)程打開(kāi)文件的方式,內(nèi)核中引入兩個(gè)數(shù)據(jù)結(jié)構(gòu):用戶(hù)打開(kāi)文件表:PCB中有一個(gè)files_struct,記錄進(jìn)程打開(kāi)的文件系統(tǒng)打開(kāi)文件表:內(nèi)核中專(zhuān)門(mén)開(kāi)辟區(qū)域,記錄不同進(jìn)程共同打開(kāi)的文件,實(shí)現(xiàn)共享o具體的系統(tǒng)調(diào)用創(chuàng)建文件:fd = create(filename, mode)如:fd = create(“/home/abcd/file.c”, 0775);o過(guò)程:I.為新文件分配inode和活動(dòng)inode,建立新的目錄項(xiàng)II.在活動(dòng)inode中置初值,包

19、括modeIII.分配內(nèi)核相關(guān)的數(shù)據(jù)結(jié)構(gòu)刪除文件過(guò)程:刪除目錄項(xiàng)中的對(duì)應(yīng)的項(xiàng),更新inode空閑表,更新空閑塊表打開(kāi)、關(guān)閉文件打開(kāi):建立進(jìn)程與文件的聯(lián)系,其本質(zhì)就是把文件inode復(fù)制到內(nèi)存中的活動(dòng)inode表,并建立一個(gè)文件數(shù)據(jù)結(jié)構(gòu)供進(jìn)程使用關(guān)閉:因活動(dòng)inode占用主存空間,因此當(dāng)文件不再使用時(shí),應(yīng)釋放所占用的空間ofd = open(filename, mode);I.過(guò)程:從相應(yīng)的目錄中去檢索,找到文件對(duì)應(yīng)的目錄項(xiàng),從而找到文件的inodeII.進(jìn)行相應(yīng)的檢查III.為打開(kāi)的文件分配相應(yīng)的數(shù)據(jù)結(jié)構(gòu)(用戶(hù)打開(kāi)文件表項(xiàng)和系統(tǒng)打開(kāi)文件表項(xiàng)),最后返回fd給調(diào)用者o關(guān)閉過(guò)程:I.根據(jù)fd找到用

20、戶(hù)打開(kāi)文件表項(xiàng)、系統(tǒng)打開(kāi)文件表項(xiàng)II.系統(tǒng)打開(kāi)文件表項(xiàng)引用數(shù)減一,若引用數(shù)為0,則找到與此對(duì)應(yīng)的活動(dòng)inodeIII.活動(dòng)inode引用數(shù)減一,若引用數(shù)為0,則寫(xiě)回此inode,并釋放該活動(dòng)inode讀寫(xiě)文件:nr = read(fd, buf, count)nr = write(fd, buf, count)設(shè)立讀寫(xiě)標(biāo)記lseek(fd, offset, whence)2.文件共享有兩層含義:一是磁盤(pán)上的不同目錄下共享同一文件,二是指不同進(jìn)程共享同一個(gè)文件靜態(tài)共享:一個(gè)文件只有一個(gè)磁盤(pán)存儲(chǔ)位置,但是可以分屬于不同的目錄下由于文件內(nèi)容都是一樣的,因此沒(méi)必要每個(gè)目錄下都復(fù)制一個(gè)一模一樣的文件,同時(shí),在這種方式下,如果某一處目錄下修改了,那么會(huì)引起文件的不一致o例如Linux下,建立“硬鏈接”的方式為ln 刪除,不會(huì)影響,實(shí)際上,建立靜態(tài)鏈接,會(huì)在inode中的i_nlink字段增加1,刪除文件,則會(huì)把改值減一,只有等i_nlink為0時(shí),才真正刪除該文件符號(hào)鏈接共享由于靜態(tài)鏈接是記錄的文件的inode,他的缺點(diǎn)是:1 只能在同一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論