輕松掌握操作系統(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ù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

目的與要求:了解文件結(jié)構(gòu),訪問方式,存儲結(jié)構(gòu)。掌握文件管理用的文件控制塊和文件目錄結(jié)構(gòu)。了解文件存儲器分區(qū)和空間管理。文件存放與訪問方式,文件目錄結(jié)構(gòu)。文件使用和控制、文件保護(hù)重點(diǎn)與難點(diǎn):掌握文件系統(tǒng)調(diào)用處理及使用。了解文件備份與保護(hù)、系統(tǒng)的組成和各部分功能。第七講

文件系統(tǒng)1.大量的程序和數(shù)據(jù)需要管理。為了方便使用管理系統(tǒng)的公共程序和數(shù)據(jù)以及用戶自己的程序和數(shù)據(jù)而引入文件。為什么引入文件和文件系統(tǒng)2.內(nèi)存空間有限。不是所有的程序和數(shù)據(jù)都能常駐內(nèi)存。3.為了對程序和數(shù)據(jù)實(shí)現(xiàn)按名存取。為了對外存儲器空間管理和對其上文件的按名訪問而引入文件系統(tǒng)。為什么引入文件和文件系統(tǒng)文件系統(tǒng)的基礎(chǔ)是什么?大容量磁盤7.1.概述一、什么是文件?文件(file)是被命名的相關(guān)信息的集合體。它由創(chuàng)建者定義,通常存放在外存上,可以作為一個獨(dú)立單位來實(shí)施相應(yīng)的操作(如打開、關(guān)閉、讀寫等)。二、文件的主要屬性包括哪些?

文件名,文件類型,文件長度,創(chuàng)建者,創(chuàng)建時間,修改時間,文件定位信息,文件所包含的信息。三、文件的基本特征有哪些?文件體內(nèi)容豐富,可以是源程序、可執(zhí)行代碼、數(shù)據(jù)、表格、語言或圖像等。無論何種內(nèi)容的文件都用一個名字唯一標(biāo)識,并都遵循按名存取原則。文件具有可重用性和可保存性。四、文件的分類(1)按文件的用途分為3類:系統(tǒng)文件、庫文件和用戶文件系統(tǒng)文件。由操作系統(tǒng)及其他系統(tǒng)程序的信息所組成的文件。如操作系統(tǒng)核心目標(biāo)代碼文件,驅(qū)動程序文件,注冊庫配置文件。庫文件。指系統(tǒng)提供的實(shí)用子程序庫,用戶只能使用不能修改的程序文件。如C語言、PASCAL語言提供的子程序庫,windows中的.dll,.exe。用戶文件。如用戶源程序和數(shù)據(jù)文件,各種應(yīng)用程序用的數(shù)據(jù)文件。(2)按文件中的數(shù)據(jù)形式分類源文件目標(biāo)文件可執(zhí)行文件(3)按存取權(quán)限分類只讀文件讀寫文件可執(zhí)行文件(4)按保存時間分類臨時文件永久文件(5)按文件的內(nèi)部構(gòu)造和處理方式分類普通文件----由表示程序、數(shù)據(jù)或文本的字符串構(gòu)成,內(nèi)部沒有固定的結(jié)構(gòu)。目錄文件----由下屬文件的目錄項(xiàng)構(gòu)成的文件。特殊文件----特指各種外部設(shè)備。五、文件存取方法(1)順序存取法按照文件的邏輯地址順序來存取。 程序依次訪問文件的數(shù)據(jù),操作系統(tǒng)自動記錄文件訪問的當(dāng)前位置。生活中的例子:文件歸檔時按文件編號順序存放,查閱時按文件編號順序查找。(2)隨機(jī)存取法程序讀/寫時直接給出要訪問數(shù)據(jù)的邏輯位置(即記錄編號,如第幾個字節(jié)或第幾個記錄)及長度,由OS將邏輯位置轉(zhuǎn)換成物理位置并訪問生活中的例子:文件存放時按自己的生活習(xí)慣把文件存放于自己易于記憶的地方,取閱時自己記?。ù竽X轉(zhuǎn)換)存放的地方。(3)其他方法(如按鍵存取法,索引存取法等)按鍵存取法文件的存取根據(jù)給定的鍵或記錄名進(jìn)行。生活中的例子:文件存放時按文件名(如標(biāo)題)分類存放,取閱時按文件類型查找。六、文件的存儲介質(zhì)順序存儲設(shè)備如:磁帶直接存儲設(shè)備(隨機(jī)存取設(shè)備)如:磁盤、光盤、閃存等7.2文件系統(tǒng)的功能與結(jié)構(gòu)

一、文件系統(tǒng)的概念現(xiàn)代操作系統(tǒng)中都配置較為完備的文件管理系統(tǒng),簡稱文件系統(tǒng)?;颍何募到y(tǒng),就是操作系統(tǒng)中負(fù)責(zé)操縱和管理文件的一整套設(shè)施,客觀存在實(shí)現(xiàn)文件的共享和保護(hù),方便用戶“按名存取”文件。二、文件系統(tǒng)的功能文件管理目錄管理文件存儲空間管理文件的共享與保護(hù)提供方便的接口7.3文件目錄結(jié)構(gòu)和目錄查詢

為管理大量的文件,實(shí)現(xiàn)對文件信息的“按名存取”,一般用文件目錄的方法來管理文件,每個文件在文件目錄中有一個目錄項(xiàng)。文件目錄記錄所有文件的名字及它代表的文件存放的物理地址。(一)文件的內(nèi)涵一個文件由文件說明和文件體組成(二)文件控制塊 說明部分的全部信息集中起來,以一個數(shù)據(jù)結(jié)構(gòu)的形式表示,稱此結(jié)構(gòu)為文件控制塊(FCB)。因此,文件包含文件控制塊和文件體。(三)FCB的主要內(nèi)容:(1)文件名(2)文件類型(3)文件位置(4)文件大小(5)保護(hù)信息(6)使用計數(shù)(7)時間(四)文件目錄的組成所有文件的文件控制塊的有序集合,就構(gòu)成了文件目錄。完全由文件控制塊構(gòu)成的文件稱為目錄文件。例:MS-DOS的文件控制塊在MS-DOS系統(tǒng)中,一個文件控制塊有16個字節(jié)長,其中包含文件名,擴(kuò)展名、屬性、時間、日期、首塊號和文件大小。如下圖示:文件名擴(kuò)展名保留大小屬性時間日期首塊號文件目錄例:MS-DOS的文件目錄文件名擴(kuò)展名屬性時間日期首塊號大小A.doc只BB.ppt可讀寫0830332008010189103KBC.exe可執(zhí)行1705062008122110234MB…………………例:MS-DOS的目錄文件將上例文件目錄以一個名字存儲起來得到的文件稱目錄文件。每個磁盤設(shè)備都有一個且只有一個根目錄文件,但可以有很多子目錄文件WINDOWS系統(tǒng)以文件夾圖標(biāo)標(biāo)示。7.3.2文件的目錄結(jié)構(gòu)1.一級目錄結(jié)構(gòu)為外存上的全部文件設(shè)立一張線性排列的目錄表,包含所有文件的FCB。每建立一個新文件即在目錄中增加一個FCB,每當(dāng)刪除一個文件即刪除對應(yīng)的FCB,當(dāng)要訪問一個文件時,先按文件名在目錄中找到對應(yīng)的文件FCB。然后由它的FCB映射其存放的物理地址。(見下圖示)一級目錄結(jié)構(gòu)示意圖FCBnn2.二級目錄結(jié)構(gòu)設(shè)一個主目錄MFD,然后為系統(tǒng)的每個用戶設(shè)用戶目錄UFD。用戶目錄是用戶所有文件FCB的集合,主目錄中存放每個用戶目錄的用戶目錄名和UFD的索引表等(當(dāng)我們把UFD看做是一個文件,這個文件的內(nèi)容是用戶所有文件FCB的集合,MFD中則包含每個UFD文件的FCB,見下圖示)。二級目錄結(jié)構(gòu)示意圖二級目錄結(jié)構(gòu)實(shí)現(xiàn)(1)可以把主目錄和二級用戶目錄放于外存頭部,也可以把二級目錄當(dāng)一般文件存放。(2)將用戶名與文件名連到一起組成路經(jīng)名,訪問時給出路徑名。例如:/OS/test.c。3.多級目錄結(jié)構(gòu)(樹形目錄結(jié)構(gòu))任何一級目錄中的FCB既可以描述次一級的子目錄,又可以描述一個文件。(見下圖)樹型目錄結(jié)構(gòu)示意圖樹型目錄結(jié)構(gòu)的特點(diǎn):利于文件分類,從文件路徑名可看出文件類別;查找文件FCB耗費(fèi)時間,要得到文件FCB,必須從根查起;惟一確定文件的路徑名太長,故引入當(dāng)前目錄概念,提供相對于當(dāng)前目錄的相對路徑名可加速文件FCB的查找,進(jìn)程控制塊存有當(dāng)前目錄信息。4.無環(huán)圖目錄結(jié)構(gòu)當(dāng)一個文件副本可以同時分到兩個不同目錄(類別)時,即同一個文件有兩條路徑名或多條路徑名時出現(xiàn)無環(huán)圖目錄結(jié)構(gòu)。(見下圖)無環(huán)圖目錄結(jié)構(gòu)示意圖圖中目錄dict與spell共享文件count,共享子目錄p.圖中目錄dict與其子目錄p共享文件root.無環(huán)圖目錄結(jié)構(gòu)的特點(diǎn):Unix的文件系統(tǒng)采用這種結(jié)構(gòu)優(yōu)點(diǎn):方便文件共享,分類;缺點(diǎn):兩個或多個FCB的一致性難以保證(如刪除文件時,當(dāng)文件修改而引起FCB內(nèi)容變化時)。

5.無環(huán)圖目錄結(jié)構(gòu)一種變通的實(shí)現(xiàn)方法——符號鏈接建立多個符號鏈文件,該文件內(nèi)容為要訪問文件的路徑名。當(dāng)訪問符號鏈文件時,讀出文件中的路徑名,再重新從根查找路徑名代表的文件FCB。無環(huán)圖目錄結(jié)構(gòu)dictcountcountrootspellroot/dict/countcountlistroot/dict/countcountroot/dict/countcountroot/dict/countcount目錄dict與spell目錄共享目錄count,只在spell目錄中指明count的路徑7.4文件和目錄的操作(略)7.5文件系統(tǒng)的實(shí)現(xiàn)7.5.1.文件系統(tǒng)的格式(略)7.5.2文件存儲分配目前常用的文件分配方法有:連續(xù)分配、鏈接分配和索引分配三種。1.連續(xù)分配----把一組連續(xù)的盤塊分配給一個文件。采用連續(xù)分配方法可把邏輯文件中的信息順序地存放到一組相鄰的物理盤塊中,這樣形成的物理文件稱為連續(xù)文件(或順序文件)。連續(xù)分配舉例

存儲器0123456789101112131415161718192021222324文件名起始塊長度A35B93C153D204文件分配表

連續(xù)文件的優(yōu)缺點(diǎn)優(yōu)點(diǎn):順序訪問容易、速度快。缺點(diǎn):要求有連續(xù)的存儲空間。必須事先知道文件的長度。2.鏈接分配----把邏輯上連續(xù)的文件不連續(xù)地存放于不同的盤塊上,并使用指針按文件數(shù)據(jù)順序?qū)⑵滏溄悠饋怼0存溄臃峙浞椒ㄐ纬傻奈募Q鏈接文件或串連文件。文件鏈?zhǔn)浇Y(jié)構(gòu)例11282316R0R1R2R3R4邏輯文件ABC文件分配表文件名起始塊最后塊………ABC116………鏈接文件的優(yōu)點(diǎn)可以充分利用磁盤中零散的空閑塊,提高外存空間的利用率。消除外部碎片。但訪問或查找只能順著指針鏈進(jìn)行,速度較慢,當(dāng)需要的磁盤塊較多時,鏈條很長.3.索引分配----為每個文件分配一個索引表,把分配給該文件的所有盤塊號都記錄在該索引表中,索引表本身也存放在一個盤塊中。按這種分配方式存儲的文件就是索引文件。 文件索引結(jié)構(gòu)文件名索引塊……ABC19……存儲器FCB索引表12043112823161128231619索引文件優(yōu)點(diǎn)主要是提高了文件的查找速度,也不會產(chǎn)生外部碎片,當(dāng)文件較大時,索引分配方式優(yōu)于鏈接分配方式。 4、多重索引分配:如果索引表過大,可以組織成如下的多級索引表,這樣單個索引表可以定長,利于實(shí)現(xiàn),下面是多級索引表示意圖二級索引表一級索引表數(shù)據(jù)塊多重索引分配例:UNIX的文件系統(tǒng)采用多重索引分配方式。Unix系統(tǒng)多重索引分配例:設(shè)盤塊大小為1KB,盤塊號用4個字節(jié)表示。 對于一般文件來說,其大小多數(shù)在10KB以內(nèi),可以利用直接項(xiàng)立即得到存放數(shù)據(jù)的盤塊號,因而存取速度較快。直接項(xiàng)能夠存放的最大文件長度為10KB。 對于大于10KB的中小型文件,可對10塊以上的部分采用一次間接(它至多可以放1KB÷4=1024B÷4=256個盤塊),一次間接允許文件長達(dá)256×1KB=256KB。 對于大于266KB(10KB+256KB)的中大型文件,超過266KB的部分,則接著采用二次間接(它至多可以放256×256個盤塊號),二次間接允許文件長達(dá)256×256×1KB=64MB。 對于大于10KB+256KB+64MB的巨型文件,則接著采用三次間接(它最多可以放256×256×256個盤塊號),三次間接允許的文件長達(dá)256×256×256×1KB=16GB。小結(jié):UNIX采用這種多重索引分配方式,一個文件的最大容量是:

10KB+256KB+64MB+16GB≈11億字節(jié)。例:在Unix系統(tǒng)中,假定磁盤塊大小是1KB,每個盤塊號占4B,文件索引節(jié)點(diǎn)中的磁盤地址明細(xì)表如下圖所示,請將下列文件的字節(jié)偏移量轉(zhuǎn)換為物理地址(寫出計算過程)。(1)8000(2)13000(3)350000409622845428931111150101367174289156824直接地址一次間接二次間接三次間接1091011954952…428#9156#331452…3300…333308…331#017475760123456789101112012

解:(1)8000/1024=7(/表示整除),8000%1024=832(%表示取模)使用直接地址,其物理地址是:101#塊內(nèi)的832號地址。(2)13000/1024=12,13000%1024=712

邏輯塊數(shù)12超出直接地址范圍(10),但是小于266(=10+256),利用一次間接。從428#塊中得到相應(yīng)的物理塊號為954。所以,其物理地址是:954#塊內(nèi)的712號地址。

(3)解:350000/1024=341,350000%1024=816

邏輯塊數(shù)341超出一次間接地址范圍(266),但是小于65802(=10+256+65536),利用二次間接。341-(10+256)=75,75/256=0,75%256=75。從9156#塊中找到第0項(xiàng)對應(yīng)的物理塊331,再從331塊中找到下標(biāo)為75的項(xiàng),進(jìn)而得到物理塊號333。所以,其物理地址是:333#塊內(nèi)的816號地址。7.5.3空閑存儲空間的管理目前常用的磁盤空閑空間管理技術(shù)主要有:1.空閑空間表法2.空閑塊鏈接法3.位示圖法4.成組鏈接法。1.空閑空間表法(1)空閑空間表。為了記載磁盤上哪些盤塊是空閑的,文件系統(tǒng)需要創(chuàng)建空閑空間表。如圖:序號第1個空閑塊號空閑塊個數(shù)物理塊號1242,3,4,5218918,19,20,21,22,23,24,25,26359559,60,61,62,63…………(2)空閑塊分配。在新建文件時,要為它分配盤空間。為此系統(tǒng)檢索空閑空間表,按一定算法找到合適文件大小的表項(xiàng)分配出去,并在文件分配表中登記。如果對應(yīng)空閑區(qū)的大小恰好是所申請的,就把該從表中刪除;如果該區(qū)大于所需數(shù)量,則把分配后剩余的部分記在表項(xiàng)中??臻e塊分配例如:空閑空間表前述圖。新建文件ABC,大小為3KB時,系統(tǒng)在空閑空間表中找到第1項(xiàng)的空間能滿足,故將序號1的空閑空間分配出去3塊,余下的1塊繼續(xù)留在空閑空間表并修改數(shù)據(jù),并將分配出去的盤塊登記在文件分配表中。設(shè)分配前文件分配表如下表:文件名起始塊長度B93C153D204分配前的文件分配表修改空閑空間表:序號第1個空閑塊號空閑塊個數(shù)物理塊號1515218918,19,20,21,22,23,24,25,26359559,60,61,62,63…………文件名起始塊長度ABC23B93C153D204修改文件分配表

(3)空閑塊回收在刪除文件時,系統(tǒng)回收該文件占用的盤塊,且把相應(yīng)的空閑塊信息填回空閑空間表中。如果釋放的盤區(qū)和原有的空閑區(qū)相鄰接,則合并成一個大的空閑區(qū),記在一個表項(xiàng)中。如圖:若刪除文件C,則要在此文件分配表中刪除文件C的目錄項(xiàng)。并修改空閑空間表。由于文件C的盤塊與表中的序號2相鄰接,故合并成一個大空閑區(qū)。文件名起始塊長度ABC23B93C153D204修改空閑空間表:序號第1個空閑塊號空閑塊個數(shù)物理塊16,17,18,19,20,21,22,23,24,25,26359559,60,61,62,63…………文件名起始塊長度ABC23B93D204修改文件分配表

2.空閑塊鏈接法這種方法與串連文件結(jié)構(gòu)相似,只是鏈接的是空閑塊而已。分配與回收。(略)3.位示圖法它利用一串二進(jìn)位值反映磁盤空間的分配情況,也稱位向量法。每個盤塊都對應(yīng)一個二進(jìn)制位。如果盤塊是空閑的,對應(yīng)位是1;如果已經(jīng)分出去,則對應(yīng)位是0。例如:設(shè)下列盤塊是空閑的:2,3,4,5,8,9,10,11,12,13,17,18,25,26,27…,則位示圖向量是:0011110011111100011000000111…★如何構(gòu)造位示圖?根據(jù)一個磁盤的總盤塊數(shù)決定位示圖由多少字組成。例:假定有一個盤組共有100個柱面(編號為0-99),每個柱面有8個磁道(編號為0-7),每個盤面分為4個扇區(qū)(編號為0-3)。那么,整個磁盤空間共有4×8×100=3200個磁盤塊可用來存儲信息。如果用字長32位的字來構(gòu)造位示圖,共需100個字。如下圖示:位示圖如下:第0字0位1位2位30位31位第1字1/01/01/0…1/01/0第2字1/01/01/0…1/01/0…………………第99字1/01/01/0…1/01/0如果磁盤塊的塊號按柱面順序來編號,則第0柱面第0盤面上的塊號是0,1,2,3,第0柱面第1盤面上的塊號是4,5,6,7,依次計算,第0柱面上共有32塊,編號為0—31,第1柱面的塊號就為32—63…于是,位示圖中第i個字的第j位對應(yīng)的塊號為:塊號=i×32+j

塊空間分配過程。(1)當(dāng)有文件要存放到磁盤上時,查找位示圖中為“0”的位,表示對應(yīng)的磁盤塊空閑可供使用。根據(jù)查到的位號和字號就可計算出塊號,同時在該位上填上占用標(biāo)志“1”。(2)磁盤定位。根據(jù)塊號計算出本塊所在的柱面號,盤面號(磁頭號)和扇區(qū)號。柱面號=[塊號/32]磁頭號=[(塊號MOD32)/4]扇區(qū)號=(塊號MOD32)MOD4塊空間回收(刪除)過程。(1)當(dāng)刪除文件歸還存儲空間時,可以根據(jù)歸還的位置推算出塊號和在位示圖中的位置:塊號=柱面號×32+磁頭號×4+扇區(qū)號字號=[塊號/32]位號=塊號MOD32(2)把位示圖中對應(yīng)的位號、字號所在位的占用標(biāo)志改為“0”。例1.有一計算機(jī)系統(tǒng)采用如下表所示的位示圖(字號、位號都從0開始編號)來管理空閑盤塊。如果盤塊從0開始編號,每個盤塊的大小為1KB。(1)現(xiàn)要為文件分配兩個盤塊,試具體說明分配過程。(2)若要釋放磁盤的第300塊,應(yīng)如何處理?01234567891011121314150111111111111111111111101111011111211011111111111113111111011110111140000000000000000…180101100000011111【解】

(1)為某文件分配兩個盤塊的過程如下:①順序檢索位示圖,從中找到第一個值為0的二進(jìn)制位,得到其字號i1=1,位號j1=5;第二個值為0的二進(jìn)制位,得到其字號i2=1,位號j2=10。②計算出找到的兩個空閑塊的盤塊號分別為:

b1=i1×16+j1=1×16+5=21b2=i2×16+j2=1×16+10=26③修改位示圖,令Map[1,5]=Map[1,10]=1,并將對應(yīng)塊21,26分配出去。(2)釋放磁盤的第300塊時,應(yīng)進(jìn)行如下處理:

①計算出磁盤第300塊所對應(yīng)二進(jìn)制位的字號i和位號j: i=300/16=18, j=300Mod16=12②修改位示圖,令Map[18,12]=0,表示對應(yīng)塊為空閑塊。01234567891011121314150111111111111111111111111111111111211011111111111113111111011110111140000000000000000…1801011000000101114.空閑塊成組鏈接法。(1)空閑塊成組鏈接此法是把所有空閑盤塊按固定數(shù)量分組,例如每50個空閑塊為一組,組中的第1塊為“組長”塊。第1組的50個空閑塊塊號放在第2組的組長塊中,而第2組的其余49塊是完全空閑的。第2組的50個塊號又放在第三組的組長塊中。依此類推,組與組之間形成鏈接關(guān)系。最后一組的塊號(可能不足50塊)通常放在內(nèi)存的一個專用棧(即文件系統(tǒng)超級塊中的空閑塊號棧)結(jié)構(gòu)中。這樣,平常對盤

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論