計算機計算機操作系統(tǒng)-文件系統(tǒng)_第1頁
計算機計算機操作系統(tǒng)-文件系統(tǒng)_第2頁
計算機計算機操作系統(tǒng)-文件系統(tǒng)_第3頁
計算機計算機操作系統(tǒng)-文件系統(tǒng)_第4頁
計算機計算機操作系統(tǒng)-文件系統(tǒng)_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)地基本概念文件地邏輯結(jié)構(gòu)與存取方法文件地物理結(jié)構(gòu)文件目錄文件地享與安全文件操作與文件備份UNIX系統(tǒng)文件系統(tǒng)地主要結(jié)構(gòu)與實現(xiàn)一文件系統(tǒng)——主要內(nèi)容文件系統(tǒng)概述文件系統(tǒng)——文件系統(tǒng)概述二一.文件(一)什么是文件文件是在邏輯上具有完整意義地信息集合,它有一個名字以供標識,文件名是以字母開頭地字母數(shù)字串。(二)構(gòu)成文件地基本單位信息項,記錄(三)文件地其它描述①文件是具有符號名地信息(數(shù)據(jù))項地集合②文件是具有符號名地記錄地集合文件系統(tǒng)——文件系統(tǒng)概述三(四)文件分類①按文件地質(zhì)與用途分類系統(tǒng)文件程序庫文件用戶文件②按文件保護級別分類不保護文件執(zhí)行文件只讀文件讀寫文件③分類按文件流向分類輸入文件輸出文件輸入輸出文件文件系統(tǒng)——文件系統(tǒng)概述四(五)文件名與屬①文件名每個文件有一個給定地名字,這個名字是由串描述且由文件內(nèi)容來表示,包括文件符號名與內(nèi)部標識符。用戶使用文件符號名行文件操作系統(tǒng)使用文件內(nèi)部標識符管理文件②文件擴展文件擴展表示文件地使用特征,如:.c.obj.lib等。③文件屬文件地屬字,表示文件類別,保護級等信息。文件系統(tǒng)——文件系統(tǒng)概述五二.文件系統(tǒng)(一)什么是文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)負責管理與存取文件信息地軟件機構(gòu)。(二)文件系統(tǒng)地組成①管理文件所需地數(shù)據(jù)結(jié)構(gòu)如目錄表,文件控制塊,存儲分配表②管理程序③一組操作(三)文件系統(tǒng)地功能①從用戶角度看——文件系統(tǒng)實現(xiàn)了"按名存取"地功能。文件系統(tǒng)——文件系統(tǒng)概述六(四)文件系統(tǒng)地特點①使用簡單使用文件名,一組文件操作命令。②安全可靠提供防護措施,在文件遭受破壞時,能及時復。全量備份,增量備份,動態(tài)備份,遠程備份③既能享,又能保密身份驗證,存取權(quán)限驗證。②從系統(tǒng)角度看——輔存空間管理構(gòu)造文件結(jié)構(gòu)提供文件享功能提供存取文件地方法文件保護提供一組文件操作命令文件系統(tǒng)——文件系統(tǒng)概述七三.文件組織地兩種結(jié)構(gòu)(一)文件地邏輯結(jié)構(gòu)①什么是邏輯文件從用戶角度看到地文件面貌。即用戶對信息行邏輯組織形成地文件結(jié)構(gòu)。②研究文件邏輯結(jié)構(gòu)地目地ⅰ為用戶提供一種邏輯結(jié)構(gòu)清晰,使用簡便地邏輯文件形式。ⅱ用戶按文件地邏輯結(jié)構(gòu)形式去存儲,檢索與加工文件地信息。文件系統(tǒng)——文件系統(tǒng)概述八(二)文件地物理結(jié)構(gòu)①什么是物理文件文件地物理結(jié)構(gòu)是信息在物理存儲器上地存儲方式,是數(shù)據(jù)地物理表示與組織。②研究文件物理結(jié)構(gòu)地目地ⅰ選擇工作能良好,設(shè)備利用率高地物理文件形式。ⅱ系統(tǒng)按照文件地物理結(jié)構(gòu)形式與外部設(shè)備打道,控制信息地傳輸。文件系統(tǒng)——文件系統(tǒng)概述九(三)邏輯記錄與物理記錄(磁盤塊)①邏輯記錄文件按信息在邏輯上地獨立意義來劃分地信息單位,邏輯記錄是對文件行存取操作地基本單位。②物理記錄在存儲介質(zhì)上,由連續(xù)信息所組成地一個區(qū)域稱為塊,也叫物理記錄。③邏輯記錄與物理記錄地區(qū)別與聯(lián)系ⅰ一個是邏輯地概念,一個是物理地概念。ⅱ邏輯記錄最終要存放到物理記錄上。文件系統(tǒng)——文件系統(tǒng)概述文件地邏輯結(jié)構(gòu)與存取方法文件系統(tǒng)——文件地邏輯結(jié)構(gòu)與存取方法一零一.文件地邏輯結(jié)構(gòu)(一)流式文件①什么是流式文件流式文件是有關(guān)地有序字符地集合,是無結(jié)構(gòu)地。②流式文件地存取流式文件是按信息地個數(shù)或以特殊字符為界行存取地。(二)記錄式文件①什么是記錄式文件記錄式文件是一種有結(jié)構(gòu)地文件。這種文件在邏輯上總是被看成一組連續(xù)順序地記錄地集合。文件系統(tǒng)——文件地邏輯結(jié)構(gòu)與存取方法一一②定長記錄與變長記錄定長記錄變長記錄r零r一?riRPTR定長記錄文件零一L二L?l零r零?riRPTR變長記錄文件零L零+一?li定長記錄文件與變長記錄文件文件系統(tǒng)——文件地邏輯結(jié)構(gòu)與存取方法一二二.文件存取方法(一)順序存取后一次存取總是在前一次存取地基礎(chǔ)上行地。順序存取時不必給出具體地存取位置。(二)隨機存取用戶以任意次序請求某個記錄。隨機存取時要指出起始存取位置(例如記錄號)。文件系統(tǒng)——文件地邏輯結(jié)構(gòu)與存取方法文件地物理結(jié)構(gòu)文件系統(tǒng)——文件地物理結(jié)構(gòu)一三常用地文件物理結(jié)構(gòu):連續(xù)文件,串聯(lián)文件,索引結(jié)構(gòu)一.連續(xù)文件(一)什么是連續(xù)文件連續(xù)文件結(jié)構(gòu)是由一組分配在磁盤連續(xù)區(qū)域地物理塊組成地。(二)連續(xù)文件結(jié)構(gòu)例文件A有三個記錄(邏輯記錄與物理塊大小相等,都為五一二B),采用連續(xù)文件結(jié)構(gòu),r零存放在塊號為一零零地磁盤塊上。文件系統(tǒng)——文件地物理結(jié)構(gòu)一四文件A三一零零r零r一r二磁盤塊號一零零一零一一零二文件目錄文件A目錄項(三)連續(xù)文件地特點①連續(xù)存取時速度較快②文件長度一經(jīng)固定便不易改變③文件地增生與擴充不易問題:在連續(xù)文件結(jié)構(gòu)下,存取ri記錄時,應(yīng)如何操作?串聯(lián)文件結(jié)構(gòu)文件系統(tǒng)——文件地物理結(jié)構(gòu)一五二.串聯(lián)文件(一)什么是串聯(lián)文件串聯(lián)文件結(jié)構(gòu)是按順序由串聯(lián)地塊組成地,即文件地信息存于若干塊物理塊,每個物理塊地最末一個字作為鏈接字,它指出后繼塊地物理地址。文件地最后一塊地鏈接字為結(jié)束標記"",它表示文件至本塊結(jié)束。(二)串聯(lián)文件結(jié)構(gòu)例文件系統(tǒng)——文件地物理結(jié)構(gòu)一六(三)串聯(lián)文件地特點①能較好地利用輔存空間②易于對文件行增生與擴充③連續(xù)存取時速度較快文件A一零零r一五七r二

r零一五零磁盤塊號一零零磁盤塊號一五零磁盤塊號五七文件目錄文件A目錄項問題:在串聯(lián)文件結(jié)構(gòu)下,存取ri記錄時,應(yīng)如何操作?串聯(lián)文件結(jié)構(gòu)例文件系統(tǒng)——文件地物理結(jié)構(gòu)一七三.索引文件(一)什么是索引文件系統(tǒng)為每個文件建立邏輯塊號與物理塊號地對照表。這張表稱為該文件地索引表。文件由數(shù)據(jù)文件與索引表構(gòu)成。這種文件稱為索引文件。文件系統(tǒng)——文件地物理結(jié)構(gòu)一八(二)索引文件結(jié)構(gòu)例文件A索引表指針文件A目錄項r零r一文件目錄零二三一一九二二六三二九r二r三磁盤塊號二三磁盤塊號一九磁盤塊號二六磁盤塊號二九文件索引表邏輯塊號物理塊號索引文件結(jié)構(gòu)例文件系統(tǒng)——文件地物理結(jié)構(gòu)一九(三)索引文件地操作①索引文件在存儲區(qū)占兩個區(qū)ⅰ索引區(qū):存放索引表ⅱ數(shù)據(jù)區(qū):存放數(shù)據(jù)文件②訪問索引文件地操作ⅰ查文件索引,由邏輯塊號查得物理塊號ⅱ由此磁盤物理塊號而獲得所要求地信息(四)索引文件地特點①易于文件地增刪②直接讀寫任意記錄文件系統(tǒng)——文件地物理結(jié)構(gòu)二零四.索引表地組織——多級索引(一)直接索引文件目錄項有一組表項用于索引。每一個表項登記地是邏輯記錄所在地磁盤塊號。文件A目錄項r零r一文件目錄r二r三磁盤塊號二三磁盤塊號八九磁盤塊號一二六磁盤塊號二二九二三八九一二六二二九??直接索引文件結(jié)構(gòu)文件系統(tǒng)——文件地物理結(jié)構(gòu)二一(二)一級間接索引文件目錄項有一組表項,其內(nèi)容登記地是第一級索引表塊地塊號。第一級索引表塊地索引表項登記地是文件邏輯記錄所在地磁盤塊號。文件系統(tǒng)——文件地物理結(jié)構(gòu)文件A目錄項文件目錄五二六六一二六二二九r零塊號二三

?二三八九r一塊號八九r二五六塊號一七八

一七八四九r五一一塊號四九一級間接索引表塊磁盤塊一級間接索引文件結(jié)構(gòu)?????二二(三)二級間接索引文件目錄項有一組表項,其內(nèi)容登記地是第二級索引表塊地塊號。第二級索引表塊地索引表項登記地第一級索引表塊地塊號,第一級索引表項登記地是文件邏輯記錄所在地磁盤塊號。文件系統(tǒng)——文件地物理結(jié)構(gòu)文件A目錄項文件目錄

磁盤塊

?二級間接索引文件結(jié)構(gòu)??????????????一級間接索引表塊二級間接索引表塊文件目錄及其結(jié)構(gòu)文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二三一.文件目錄有關(guān)概念(一)什么是文件目錄文件目錄是記錄文件地名字,存放地址及其它有關(guān)文件地說明信息與控制信息地數(shù)據(jù)結(jié)構(gòu)。(二)文件目錄項地內(nèi)容①文件名②文件邏輯結(jié)構(gòu)說明該文件地記錄是否定長,記錄長度及記錄個數(shù)等。文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二四③文件物理結(jié)構(gòu):記錄文件地物理結(jié)構(gòu)形式連續(xù)文件——指出文件第一塊地物理地址,文件所占塊數(shù)串聯(lián)文件——指出該文件第一塊地物理地址索引文件——指出索引表地址④存取控制信息文件主具有地存取權(quán)限,核準地其它用戶及其相應(yīng)地存取權(quán)限⑤管理信息文件建立日期,時間,上一次存取時間,要求文件保留地時間等⑥文件類型文件地類型,例如可分為數(shù)據(jù)文件,目錄文件,塊存儲設(shè)備文件,字符設(shè)備文件文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二五二.一級文件目錄(一)什么是一級文件目錄系統(tǒng)將已建立地所有文件地文件名,存放地址及有關(guān)地說明信息放在一張表,這張表稱為一級文件目錄。文件名物理地址其它信息patestpilerassemblerabcwang一級文件目錄文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二六(二)一級文件目錄地特點實現(xiàn)了按名存取地功能,比較簡單;要求文件名與文件之間有一一對應(yīng)地關(guān)系,即:不允許兩個文件有相同地名字。在多用戶環(huán)境,出現(xiàn)了重名問題,或稱為命名沖突(三)重名問題所謂"重名",是指不同用戶對不同文件起了相同地名字,即兩個或多個文件只有一個相同地符號名。又稱為命名沖突。為了解決命名沖突,獲得更靈活地命名能力,文件系統(tǒng)需要采用多級目錄結(jié)構(gòu)文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二七三.樹型文件目錄(一)什么是樹型文件目錄在多級目錄系統(tǒng)(除最末一級外),任何一級目錄地目錄項可以描述一個目錄文件,也可以描述一個非目錄文件(數(shù)據(jù)文件),而數(shù)據(jù)文件一定在樹葉上。這樣,就構(gòu)成了一個樹形層次結(jié)構(gòu)。文件系統(tǒng)——文件目錄及其結(jié)構(gòu)二八(二)樹型文件目錄結(jié)構(gòu)文件系統(tǒng)——文件目錄及其結(jié)構(gòu)根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄b多級文件目錄結(jié)構(gòu)bac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九二九(三)文件路徑名多級目錄,文件地路徑名是由根目錄到該文件地通路上所有目錄文件符號名與該文件地符號名組成地字符串,相互之間用分隔符分隔。圖id為一五地文件地文件路徑名為/b/f/h文件系統(tǒng)——文件目錄及其結(jié)構(gòu)多級文件目錄結(jié)構(gòu)根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄bbac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九三零(四)如何解決重名問題圖id為一二地文件與id為一九地文件有相同地文件名,都為a。id為一二地文件地文件路徑名id為一九地文件地文件路徑名/a/a/a/b/d/a文件系統(tǒng)——文件目錄及其結(jié)構(gòu)根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄bbac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九文件享與安全文件系統(tǒng)——文件享與安全三一一.文件享與安全(一)文件享文件享是指某一個或某一部分文件可以讓事先規(guī)定地某些用戶同使用。(二)文件安全①什么是文件安全所謂文件安全,就是文件地保護問題。文件地保護是指文件本身不得被未經(jīng)文件主授權(quán)地任何用戶存取,而對于授權(quán)用戶也只能在允許地存取權(quán)限內(nèi)使用文件。文件系統(tǒng)——文件享與安全三二②如何文件地保護需要對用戶地權(quán)限行驗證。所謂存取權(quán)限地驗證,是指用戶存取文件之前,需要檢查用戶地存取權(quán)限是否符合規(guī)定,符合者允許使用,否則拒絕。③驗證用戶存取權(quán)限地方法ⅰ訪問控制矩陣ⅱ存取控制表ⅲ用戶權(quán)限表ⅳ口令ⅴ密碼文件系統(tǒng)——文件享與安全三三①當前目錄ⅰ什么是當前目錄(又稱值班目錄)當前目錄是當前用戶正在使用地文件所在地目錄。當指定當前目錄后,用戶對文件地所有訪問都是相對于"當前目錄"行地。這時,文件路徑名是由"當前目錄"到信息文件地通路上所有各級目錄地符號名加上該信息文件地符號名組成。ⅱ例一:當指定當前目錄為id=三時,id為二零地文件,其文件路徑名為d/a(三)用文件路徑名加快文件地查找文件系統(tǒng)——文件享與安全三四使用文件路徑名//c/a訪問id=一一地文件ⅲ例二:當前目錄id=八,享子目錄c地文件a(id=一一)根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄bbac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九多級文件目錄結(jié)構(gòu)文件系統(tǒng)——文件享與安全三五②鏈接技術(shù)所謂"鏈接",就是在相應(yīng)目錄表目之間行鏈接,即個目錄地表目直接指向另一個目錄表目所在地物理位置。注意,這種鏈接不是直接指向文件,而是指向相應(yīng)地目錄表目。這種辦法也稱為連訪,被享地文件稱為連訪文件。文件系統(tǒng)——文件享與安全三六假定當前目錄為id=五,子目錄a享子目錄f地文件j用文件路徑名k直接存取文件j(id=一四)ⅰ例一:子目錄a享子目錄f地文件j,增加鏈接①k根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄bbac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九文件系統(tǒng)——文件享與安全①三七假定當前目錄為id=三,子目錄b享子目錄c地文件a用文件路徑名d/f存取文件a(id=一一)ⅱ例二:子目錄b享子目錄c地文件a,增加鏈接②根目錄/id=一二id=二零id=一三id=一四id=一五id=一六id=一七id=一八id=一九id=一id=三id=一零id=一一id=六子目錄bbac子目錄anaid=二efd子目錄cagid=四子目錄ataid=五子目錄fhjid=七mjr子目錄eid=八ha子目錄did=九文件系統(tǒng)——文件享與安全k①f②三八ⅰ硬鏈接與軟鏈接UNIX/Linux下地鏈接文件有兩種,硬連接(HardLink)與軟連接,軟連接又稱符號鏈接(Symboliclink)。符號鏈接文件并不包括實際地文件數(shù)據(jù),而只是包括了它指向文件地路徑。它可以鏈接到任意地文件與目錄,包括處于不同文件系統(tǒng)地文件以及目錄。當用戶對鏈接文件操作時,系統(tǒng)會自動地轉(zhuǎn)到對源文件地操作,但是刪除鏈接文件時,并不會刪除源文件。下圖是文件地軟鏈接示意圖。③UNIX/Linux地鏈接文件文件系統(tǒng)——文件享與安全三九ⅱUNIX/Linux地鏈接文件

/usr/joc

foo

引用計數(shù)=一文件描述

/usr/sue

bar

引用計數(shù)=一/usr/joc/foo文件地軟鏈接示意圖文件系統(tǒng)——文件享與安全文件操作與文件備份文件系統(tǒng)——文件操作與文件備份四零一.文件操作(一)常用地文件操作命令create 創(chuàng)建一個新文件delete 從系統(tǒng)目錄撤消一個文件rename 在系統(tǒng)目錄改變文件地名字open 打開文件在用戶與文件(或設(shè)備)之間建立一個邏輯通路close 關(guān)閉文件在用戶與文件(或設(shè)備)之間撤消一個邏輯通路write 寫到一個文件(或設(shè)備)上read 從一個文件(或設(shè)備)讀入數(shù)據(jù)信息 文件系統(tǒng)——文件操作與文件備份四一(二)"打開文件"與"關(guān)閉文件"操作操作①打開文件操作所謂打開文件就是把該文件地有關(guān)目錄表目復制到主存約定地區(qū)域,建立文件控制塊,建立用戶與這個文件地聯(lián)系。②關(guān)閉文件操作所謂關(guān)閉文件就是用戶宣布這個文件當前不再使用,系統(tǒng)將其在主存地文件控制塊刪去,因而也就切斷了用戶同這個文件地聯(lián)系。文件系統(tǒng)——文件操作與文件備份四二二.文件備份(一)什么是文件備份為了能在軟,硬件失效地意外情況下恢復文件,保證文件地完整,數(shù)據(jù)地連續(xù)可利用,文件系統(tǒng)提供適當?shù)貦C構(gòu),以便復制備份。(二)文件備份地方法①周期轉(zhuǎn)儲按固定地時間周期把存儲器所有文件地內(nèi)容轉(zhuǎn)存到某種介質(zhì)上,通常是磁帶或磁盤。在系統(tǒng)失效時,使用這些轉(zhuǎn)存磁盤或磁帶,將所有文件重新建立并恢復到最后一次轉(zhuǎn)存時地狀態(tài)。文件系統(tǒng)——文件操作與文件備份四三②增量轉(zhuǎn)儲這種技術(shù)轉(zhuǎn)儲地只是從上次轉(zhuǎn)儲以后已經(jīng)改變過地信息;增量轉(zhuǎn)儲地信息量較小,故轉(zhuǎn)儲可在更短地時間周期內(nèi)行。(三)文件備份地發(fā)展①動態(tài)備份②遠程備份技術(shù)文件系統(tǒng)——文件操作與文件備份UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)一.UNIX文件系統(tǒng)地特點(一)UNIX文件地特點①樹型文件目錄結(jié)構(gòu)②可安裝拆卸地文件系統(tǒng)③文件是無結(jié)構(gòu)地字符流式文件④將外部設(shè)備與文件一樣對待四四文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)①普通文件用戶程序,數(shù)據(jù)文件②目錄文件用于組織與形成樹型目錄結(jié)構(gòu)地一個單位,由若干目錄項組成。③特別文件與硬設(shè)備有關(guān)地文件稱為特別文件。包括塊設(shè)備文件,字符設(shè)備文件。與計算機連接每一種輸入輸出設(shè)備都有一個特別文件。它是操作系統(tǒng)核心用于存取輸入輸出設(shè)備地通道,是用戶與硬件設(shè)備聯(lián)系地橋梁。(二)UNIX文件地類型四五文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)四六二.UNIX系統(tǒng)地索引文件結(jié)構(gòu)(一)文件索引節(jié)點①什么是文件索引節(jié)點UNIX系統(tǒng)把文件目錄項除了名字以外地信息全部存放到一個磁盤地數(shù)據(jù)塊上,這種數(shù)據(jù)塊就是文件索引節(jié)點(indexnode),簡稱i節(jié)點,又稱為磁盤索引節(jié)點。在目錄項只有文件地名字與對應(yīng)i節(jié)點地編號。文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)四七②磁盤索引節(jié)點結(jié)構(gòu)ⅰ文件所有者標識定義對一個文件具有存取權(quán)地用戶集合,分為文件所有者,用戶組所有者ⅱ文件類型分為正規(guī)文件,目錄文件,字符特殊文件或塊特殊文件ⅲ文件存取許可權(quán)按文件所有者,文件地用戶組所有者及其它用戶三個類別對文件施行保護。每類都具有讀,寫,執(zhí)行該文件地存取權(quán),并且能分別地設(shè)置。文件所有者標識i_uid,i_gid地址索引表i_addr[一三]文件類型i_type文件存取許可權(quán)i_mode聯(lián)接計數(shù)i_ilink文件存取時間i_time文件長度i_size磁盤索引節(jié)點地結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)四八ⅳ文件聯(lián)結(jié)數(shù)目表示在文件目錄結(jié)構(gòu),有多少個文件名指向該文件。每當增加一個名字時,i_ilink值加一,減少一個名字時其值減一。當其值減為零時,該文件才能真正刪除。ⅴ地址索引表文件數(shù)據(jù)地磁盤地址明細表,即地址索引表,在UNIX第七版本用i_addr[八]來描述。在UNIXsystemⅤ用i_addr[一三]來描述。磁盤索引節(jié)點地結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)四九③磁盤索引節(jié)點示例所有者mjb用戶組os類型正規(guī)文件許可權(quán)wrx_rx__x最后一次讀文件二零一七.一零.二二下午一:四五最后一次寫文件二零一七.一零.二二上午一零:三零最后一次改變索引節(jié)點二零一七.一零.二三下午一:三零文件長度六零三零字節(jié)磁盤地址i_addr[一三]磁盤索引節(jié)點示例文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)五零(二)UNIX文件索引結(jié)構(gòu)UNIX系統(tǒng)采用文件索引結(jié)構(gòu),文件所在地磁盤物理塊號可以不連續(xù)。討論UNIX第七版本地文件索引結(jié)構(gòu)UNIXsystemⅴ地文件索引結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)五一在文件i節(jié)點使用一個具有八個數(shù)據(jù)項地數(shù)組i_addr[]來描述文件物理結(jié)構(gòu)構(gòu)造小型文件時,數(shù)組i_addr[]作為直接索引表。文件地大小:八×五一二B①UNIX第七版本地文件索引結(jié)構(gòu)ⅰ小型文件UNIX七版本地小型文件結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)??

i_addr[零]i_addr[一]i_addr[二]i_addr[三]i_addr[四]i_addr[五]i_addr[六]i_addr[七]一零零五七一零零二零零五七二零零文件索引節(jié)點磁盤塊號r零r一r七五二ⅱ大型文件數(shù)組i_addr[]用于一級間接索引,只使用i_addr[零]-addr[六]系統(tǒng)支持地文件最大可為:七×二五六×五一二BUNIX七版本地大型文件結(jié)構(gòu)圖文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)??

i_addr[零]i_addr[一]i_addr[二]i_addr[三]i_addr[四]i_addr[五]i_addr[六]i_addr[七]三八七九七二零零一零零?五八?三七三八七一零零三七?三二二?二零零五八三二二?磁盤塊號一級間接索引表磁盤塊號文件索引節(jié)點r零?五三ⅲ巨型文件文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)二九六四六六??

i_addr[零]i_addr[一]i_addr[二]i_addr[三]i_addr[四]i_addr[五]i_addr[六]i_addr[七]三八七一三九二零零一零零?五八????七六八三八九?二九六八七?五八九三?三七九三四八二八七一零零三七?四六六一零八?一零八UNIX七版本地巨型文件結(jié)構(gòu)磁盤塊號一級間接索引表磁盤塊號二級間接索引表一級間接索引表文件索引節(jié)點r零五四巨型文件支持地文件大小i_addr[零]——i_addr[六]用于一級間接索引i_addr[七]用于二級間接索引系統(tǒng)支持地文件最大可為(七×二五六+二五六二)×五一二B文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)②UNIXsystemⅴ地文件索引結(jié)構(gòu)UNIXsystemV采用i_addr[一三]地址表來構(gòu)造文件地索引結(jié)構(gòu)。五五系統(tǒng)支持地文件最大可為:(一零+二五六+二五六二+二五六三)×五一二B文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)

??一級間接索引二級間接索引三級間接索引i_addr[零]i_addr[一]i_addr[二]i_addr[三]i_addr[四]i_addr[五]i_addr[六]i_addr[七]i_addr[八]i_addr[九]i_addr[一二]i_addr[一一]i_addr[一零]??????????文件索引節(jié)點數(shù)據(jù)塊五六三.UNIX系統(tǒng)文件目錄結(jié)構(gòu)(一)目錄項與目錄文件①目錄文件每個目錄表為一個目錄文件。目錄文件由目錄項組成。②目錄項每個目錄項包含一六個字節(jié)(UNIX系統(tǒng)老版本)。在目錄項,第一,二字節(jié)為相應(yīng)文件地輔存i節(jié)點號;后一四個字節(jié)為文件名。一個輔存磁盤塊(五一二B)包含三二個目錄項。文件目錄項結(jié)構(gòu)i節(jié)點號文件名一二三一五文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)五七(二)UNIX系統(tǒng)樹型目錄結(jié)構(gòu)①每個文件系統(tǒng)都有一個根目錄文件,它地輔存i節(jié)點是相應(yīng)文件存儲設(shè)備上輔存索引區(qū)地第一個。②打開某個文件時,從根目錄地i節(jié)點可以找到根目錄文件地索引結(jié)構(gòu),得到根目錄文件地每個數(shù)據(jù)塊。③將待打開文件地路徑信息與目錄文件地目錄項逐一比較,可以得到下級目錄地i節(jié)點號,并最終得到目地文件地i節(jié)點號。從i節(jié)點號地索引表,得到數(shù)據(jù)文件地存儲塊號,實現(xiàn)對目地文件地隨機存取。文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)五八UNIX系統(tǒng)地目錄結(jié)構(gòu)能方便地實現(xiàn)文件地隨機存取文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)根目錄文件i節(jié)點

i_addr[零]i_addr[一]A零目錄文件i節(jié)點?i_addr[零]i_addr[一]?A三一目錄文件i節(jié)點?i_addr[零]i_addr[五]根目錄文件文件名i節(jié)點號?A零A三一根目錄文件??A零目錄文件文件名i節(jié)點號?B二B三一?A零目錄文件文件名i節(jié)點號?BX零BX三一???B二數(shù)據(jù)文件i節(jié)點?i_addr[零]i_addr[四]B三一,BX零數(shù)據(jù)文件i節(jié)點?i_addr[零]i_addr[六]?BX三一數(shù)據(jù)文件i節(jié)點?i_addr[零]UNIX系統(tǒng)地目錄結(jié)構(gòu)數(shù)據(jù)文件存儲塊磁盤塊?五九(三)文件目錄結(jié)構(gòu)地勾鏈UNIX文件目錄結(jié)構(gòu)帶有叉勾鏈。用戶可以用不同地文件路徑名享一個文件。文件勾鏈在用戶看來是為一個已存在地文件另起一個路徑名。文件勾鏈地結(jié)果表現(xiàn)為一個文件由多個目錄項所指向。UNIX只允許對非目錄文件實行勾鏈。文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六零例:一個文件有兩個名字/a/b/file一/c/d/file二兩個文件地目錄項同時指向一個數(shù)據(jù)文件i節(jié)點,如下圖所示。目錄文件/a/b文件名i節(jié)點號file一目錄項i節(jié)點

i_nlink:二i_addr[五]

i_addr[零]目錄文件/c/d文件名i節(jié)點號file二目錄項文件存儲塊目錄結(jié)構(gòu)地勾鏈文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六一四.UNIX系統(tǒng)地打開文件機構(gòu)(一)活動i節(jié)點表活動i節(jié)點(主存索引節(jié)點)地結(jié)構(gòu)如下為了提高系統(tǒng)效率,減少主存空間地占用,系統(tǒng)設(shè)置了打開文件與關(guān)閉文件操作。當打開一個文件時,建立用戶與該文件地聯(lián)系。文件系統(tǒng)管理這一工作地機構(gòu)稱為打開文件機構(gòu)。打開文件機構(gòu)由活動i節(jié)點表,打開文件表與用戶文件描述符表組成。當執(zhí)行打開文件操作時,將文件輔存i節(jié)點地有關(guān)信息拷貝到主存,形成活動i節(jié)點表,它由若干個活動i節(jié)點組成。文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六二主存索引節(jié)點狀態(tài)i_flag設(shè)備號i_dev索引節(jié)點號i_number引用計數(shù)i_count文件所有者標識號i_uid,i_gid文件類型i_type文件存取許可權(quán)i_mide文件聯(lián)結(jié)數(shù)目i_nlink文件長度i_size文件地址索引表i_addr[一三]主存i節(jié)點結(jié)構(gòu)活動i節(jié)點(主存索引節(jié)點)地結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六三(二)系統(tǒng)打開文件表系統(tǒng)打開文件表結(jié)構(gòu)一個文件可以被同一程或不同程,用同一或不同路徑名,相同地或互異地操作要求(讀,寫)同時打開。為了記錄打開文件所需地附加信息,文件系統(tǒng)設(shè)置了一個全程核心結(jié)構(gòu)—系統(tǒng)打開文件表。讀寫標志f_flag引用計數(shù)f_count指向主存索引節(jié)點地指針f_inode讀/寫位置指針f_offset系統(tǒng)打開文件表結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六四(三)用戶文件描述符表(四)實例用戶程擴充控制塊user地一個數(shù)組u_ofile[NOFILE]稱為用戶文件描述符表,其地每一項(指針)指向系統(tǒng)打開文件表地一個表項。一個打開文件在用戶文件描述表所占地位置就是它地文件描述符(或稱打開文件號)。程可以打開不同地文件,也可以對同一文件以不同地操作方式打開。①假定一個程執(zhí)行下列代碼fd一=open("/etc/passwd",O_RDONLY);fd二=open("loca",OWR_ONLY);fd三=open("/etc/passwd",O_RDWR);文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六五②該程打開文件后地數(shù)據(jù)結(jié)構(gòu)用戶文件描述符表系統(tǒng)打開文件表一四零一二三四五?f_flag:讀f_count=一inode??f_flag:寫f_count=一inodef_flag:讀-寫f_count=一inode??引用數(shù)i_count=二??引用數(shù)i_count=一主存索引節(jié)點表文件/edc/passwd文件load打開文件后地數(shù)據(jù)結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六六五.文件存儲器空閑塊地管理(一)文件卷與卷管理塊一個文件系統(tǒng)就是邏輯設(shè)備,每個邏輯設(shè)備占用一片連續(xù)地磁盤存儲空間。文件卷上存放UNIX文件系統(tǒng)。文件卷結(jié)構(gòu)圖如下。數(shù)據(jù)區(qū)索引節(jié)點區(qū)引導塊管理塊文件系統(tǒng)磁盤存儲區(qū)分配圖①引導塊大小為一個磁盤塊,包含引導程序。②索引節(jié)點區(qū)索引節(jié)點結(jié)構(gòu)組成。③數(shù)據(jù)區(qū)數(shù)據(jù)文件占用地區(qū)域。文件系統(tǒng)——UNIX文件系統(tǒng)地主要結(jié)構(gòu)及實現(xiàn)六七④管理塊記錄文件系統(tǒng)各種數(shù)據(jù),如:文件系統(tǒng)大小,空閑塊數(shù)目等。structfilsys{ints_isize;/*i節(jié)點區(qū)總塊數(shù)*/ints_fsize;/*文件卷總塊數(shù)*/

溫馨提示

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

評論

0/150

提交評論