![操作系統(tǒng)課件-第9章文件系統(tǒng)_第1頁](http://file4.renrendoc.com/view/3b640eddef1c29981b80f1630aa75f47/3b640eddef1c29981b80f1630aa75f471.gif)
![操作系統(tǒng)課件-第9章文件系統(tǒng)_第2頁](http://file4.renrendoc.com/view/3b640eddef1c29981b80f1630aa75f47/3b640eddef1c29981b80f1630aa75f472.gif)
![操作系統(tǒng)課件-第9章文件系統(tǒng)_第3頁](http://file4.renrendoc.com/view/3b640eddef1c29981b80f1630aa75f47/3b640eddef1c29981b80f1630aa75f473.gif)
![操作系統(tǒng)課件-第9章文件系統(tǒng)_第4頁](http://file4.renrendoc.com/view/3b640eddef1c29981b80f1630aa75f47/3b640eddef1c29981b80f1630aa75f474.gif)
![操作系統(tǒng)課件-第9章文件系統(tǒng)_第5頁](http://file4.renrendoc.com/view/3b640eddef1c29981b80f1630aa75f47/3b640eddef1c29981b80f1630aa75f475.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)的基本概念文件的邏輯結(jié)構(gòu)文件的物理結(jié)構(gòu)文件存儲(chǔ)空間管理目錄結(jié)構(gòu)共享與安全文件操作與文件備份1文件系統(tǒng)——主要內(nèi)容文件系統(tǒng)的基本概念文件系統(tǒng)——文件的邏輯結(jié)構(gòu)與存取方法引入文件系統(tǒng): 1計(jì)算機(jī)的優(yōu)勢(shì)在于它能夠以極快的速度處理大量的信息。有些信息需要長期保存,所以要解決信息數(shù)據(jù)的組織存取問題。 2用戶需要擺脫各種存儲(chǔ)介質(zhì)的特性和I/O指令的細(xì)節(jié),能夠方便的存取信息。 3多用戶協(xié)調(diào)共享,安全。 4操作系統(tǒng)本身也需要。把數(shù)據(jù)組織成文件形式加以管理和控制是計(jì)算機(jī)數(shù)據(jù)管理的重大發(fā)展。421.文件
(1)什么是文件文件是在邏輯上具有完整意義的信息集合,是文件系統(tǒng)存儲(chǔ)和加工的邏輯部件。它有一個(gè)名字以供標(biāo)識(shí),文件名是以字母開頭的字母數(shù)字串,文件名是有若干約束的字符串。
(2)構(gòu)成文件的基本單位信息項(xiàng)(單個(gè)字符或字節(jié))、記錄
(3)文件的其他描述
①文件是具有符號(hào)名的信息(數(shù)據(jù))項(xiàng)的集合
②文件是具有符號(hào)名的記錄的集合
文件系統(tǒng)——文件系統(tǒng)概述2.文件分類(1)按文件的性質(zhì)和用途系統(tǒng)文件程序庫文件用戶文件(2)按保護(hù)級(jí)別執(zhí)行文件x只讀文件r讀寫文件rw(3)按文件流向輸入文件輸出文件輸入輸出文件(4)按文件類型普通文件-目錄d鏈接文件l字符設(shè)備c塊設(shè)備b套接字s管道文件p4(5)文件名與屬性①
文件名
每個(gè)文件有一個(gè)給定的名字, 文件名的約束,②文件擴(kuò)展名
文件擴(kuò)展名表示文件的使用特征,如:.c.obj.lib等。③
文件屬性文件的屬性字,表示文件類型、權(quán)限等信息。文件系統(tǒng)——文件系統(tǒng)概述二、文件系統(tǒng)
1.什么是文件系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)中負(fù)責(zé)管理和存取文件信息的軟件機(jī)構(gòu)。包括:負(fù)責(zé)文件操作和管理的程序模塊管理文件所需的數(shù)據(jù)結(jié)構(gòu)(如目錄表、文件控制塊、存儲(chǔ)分配表)訪問文件的一組操作2.文件系統(tǒng)的基本功能(1)實(shí)現(xiàn)了“按名存取”的功能:從“文件名”查尋到“文件內(nèi)容”;(2)解決文件數(shù)據(jù)的組織結(jié)構(gòu)問題,實(shí)現(xiàn)邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換;(3)提供一組文件操作:創(chuàng)建、刪除、讀寫、修改屬性等;(4)文件共享和保護(hù);3.一個(gè)通用文件系統(tǒng)的要求允許用符號(hào)名訪問文件;用戶應(yīng)能以最適合于各自的應(yīng)用方式構(gòu)造各自的文件;每個(gè)用戶可以執(zhí)行基本的文件操作命令,如創(chuàng)建、刪除、讀寫文件等命令;實(shí)現(xiàn)輔助空間的自動(dòng)管理,使文件在輔助存儲(chǔ)器中的分配位置與它的用戶無關(guān);用戶能在慎密的控制狀態(tài)下,互相合作共享彼此的文件。共享文件的機(jī)制應(yīng)提供各種類型的、受控的訪問,例如讀、寫、執(zhí)行或它們的組合;必須提供后備與恢復(fù)能力以防止有意或無意的毀損信息;文件系統(tǒng)對(duì)在敏感環(huán)境中需要保密與私用的數(shù)據(jù)提供加密或解密的能力;(二)文件的組織結(jié)構(gòu)用兩種不同的觀點(diǎn)去研究文件的組織形式
1.文件的邏輯結(jié)構(gòu)(用戶觀點(diǎn))
(1)什么是文件的邏輯結(jié)構(gòu) 從用戶角度看到的文件面貌。即用戶對(duì)信息進(jìn)行邏輯組織形成的文件結(jié)構(gòu)。
(2)研究文件邏輯結(jié)構(gòu)的目的 為用戶提供一種邏輯結(jié)構(gòu)清晰、使用簡(jiǎn)便的邏輯文件形式。
用戶按文件的邏輯結(jié)構(gòu)形式去存儲(chǔ)、檢索和加工文件中的信息。2.文件的物理結(jié)構(gòu)(實(shí)現(xiàn)觀點(diǎn))(1)什么是文件的物理結(jié)構(gòu) 信息在物理存儲(chǔ)器上的存儲(chǔ)方式,是數(shù)據(jù)的物理表示和組織。(2)研究文件物理結(jié)構(gòu)的目的
選擇工作性能良好、設(shè)備利用率高的物理文件形式;更高效的利用物理存儲(chǔ)設(shè)備,更快速的訪問文件。系統(tǒng)按照文件的物理結(jié)構(gòu)形式和外部設(shè)備打交道,控制信息的傳輸。3.邏輯記錄與物理記錄(1)邏輯記錄邏輯記錄是文件中按信息在邏輯上的獨(dú)立含義來劃分的信息單位。邏輯記錄是對(duì)文件進(jìn)行存取操作的基本單位。
(2)物理記錄(塊)在存儲(chǔ)介質(zhì)上,由連續(xù)信息所組成的一個(gè)區(qū)域稱為塊,也叫物理記錄。物理記錄是對(duì)輔存進(jìn)行存取操作的基本單位。邏輯記錄和物理記錄(塊)的關(guān)系邏輯記錄是按信息在邏輯上的獨(dú)立含義劃分的單位,塊是存儲(chǔ)介質(zhì)上連續(xù)信息所組成的區(qū)域。邏輯記錄最終在存放到物理記錄上。書和章節(jié)相當(dāng)于文件和邏輯記錄,是邏輯概念;而頁相當(dāng)于塊,是物理概念。一個(gè)邏輯記錄可能占用一塊或多物理記錄,也可能一個(gè)物理記錄包含多個(gè)邏輯記錄。從用戶使用觀點(diǎn)來看,關(guān)心數(shù)據(jù)的邏輯結(jié)構(gòu),即記錄及其邏輯關(guān)系,數(shù)據(jù)獨(dú)立于物理環(huán)境;從系統(tǒng)實(shí)現(xiàn)觀點(diǎn)來看,關(guān)心數(shù)據(jù)的物理結(jié)構(gòu),數(shù)據(jù)被文件系統(tǒng)按照某種規(guī)則排列和存放到物理存儲(chǔ)介質(zhì)上。文件系統(tǒng)的作用就是在邏輯文件和物理文件之間建立映像關(guān)系,并實(shí)現(xiàn)兩者之間的相互轉(zhuǎn)換。文件的邏輯結(jié)構(gòu)與存取方法文件系統(tǒng)——文件的邏輯結(jié)構(gòu)與存取方法101.文件的邏輯結(jié)構(gòu)
(1)流式文件①
什么是流式文件
流式文件是相關(guān)的有序字符的集合,是無結(jié)構(gòu)的。②
流式文件的存取
流式文件是按信息的個(gè)數(shù)或以特殊字符為界進(jìn)行存取的。
(1)特點(diǎn)
1、空間利用上比較節(jié)省,最簡(jiǎn)單,最方便;
2、順序存放,連續(xù)字符流形式很容易和物理設(shè)備上傳輸?shù)臄?shù)據(jù)對(duì)應(yīng);
3、用戶可以靈活的組織其文件內(nèi)部的邏輯結(jié)構(gòu)文件系統(tǒng)——文件的邏輯結(jié)構(gòu)與存取方法101.文件的邏輯結(jié)構(gòu)
(2)記錄式文件
記錄式文件是一種有結(jié)構(gòu)的文件。這種文件在邏輯上總是被看成一組連續(xù)順序的記錄的集合。 記錄按順序編號(hào)為記錄0,記錄1,......,記錄n。
邏輯記錄的概念被應(yīng)用于許多場(chǎng)合,特別象數(shù)據(jù)庫管理系統(tǒng)中已是必不可少的了。 記錄可分為定長記錄與變長記錄。文件系統(tǒng)——文件的邏輯結(jié)構(gòu)與存取方法11文件系統(tǒng)——文件的邏輯結(jié)構(gòu)與存取方法變長記錄
r0r1......riRPTR定長記錄文件01L2L......l0r0......riRPTR變長記錄文件0L0+1......li變長記錄文件中確定一個(gè)記錄的邏輯位置比較麻煩定長記錄
(3)兩種文件的比較流式文件就象給一張白紙給用戶,用戶可將他的信息任意地寫到紙上,沒有任何格式上的限制。記錄式文件就象給一張表格給用戶,用戶要按表規(guī)定的格式填信息。流式文件管理簡(jiǎn)單,記錄式文件需要管理記錄結(jié)構(gòu)信息。2、文件的存取方法1.順序存取后一次存取總是在前一次存取的基礎(chǔ)上進(jìn)行的。順序存取時(shí)不必給出具體的存取位置。2.隨機(jī)存取用戶以任意次序請(qǐng)求某個(gè)記錄。隨機(jī)存取時(shí)要指出起始存取位置(例如記錄號(hào)、字符序號(hào))。21文件的物理結(jié)構(gòu)文件系統(tǒng)——文件的物理結(jié)構(gòu)
基本概念塊——塊是存儲(chǔ)介質(zhì)上連續(xù)信息所組成的一個(gè)區(qū)域,也叫物理記錄。 塊是主存儲(chǔ)器和輔助存儲(chǔ)設(shè)備信息交換的物理單位,每次交換一塊或整數(shù)塊。 決定塊的大小要考慮到用戶使用方式、數(shù)據(jù)傳輸效率和存儲(chǔ)設(shè)備類型等多種因素。23
不同類型的存儲(chǔ)介質(zhì),塊的長短常常各不相同;同一類型的存儲(chǔ)介質(zhì),塊的長短也可以不同。 塊以塊之間可能有間隙,不記錄信息的區(qū)域。24所有磁盤片的相同磁道稱為一個(gè)柱面,因此,磁盤上每個(gè)物理塊的位置可用柱面號(hào)、磁頭號(hào)和扇區(qū)號(hào)表示,這些地址和物理塊號(hào)一一對(duì)應(yīng)。
文件的物理結(jié)構(gòu)描述了文件在輔存上安置、鏈接和編目的方法。 常用的文件物理結(jié)構(gòu)有:連續(xù)文件串聯(lián)文件索引文件26131.連續(xù)文件
(1)什么是連續(xù)文件
連續(xù)文件結(jié)構(gòu)是由一組分配在磁盤連續(xù)區(qū)域的物理塊組成的。
(2)連續(xù)文件結(jié)構(gòu)例子
文件A有三個(gè)記錄(邏輯記錄與物理塊大小相等,都為512B),采用連續(xù)文件結(jié)構(gòu),r0存放在塊號(hào)為100的磁盤塊上。文件系統(tǒng)——文件的物理結(jié)構(gòu)14文件系統(tǒng)——文件的物理結(jié)構(gòu)文件A3100r0r1r2磁盤塊號(hào)100101102文件目錄文件A目錄項(xiàng)(3)連續(xù)文件的特點(diǎn)
①
連續(xù)存取時(shí)速度較快,隨機(jī)存取效率高。
②
文件長度一經(jīng)固定便不易改變
③
文件的增長和擴(kuò)充不易
問題:在連續(xù)文件結(jié)構(gòu)下,存取ri記錄時(shí),應(yīng)如何操作?串聯(lián)文件結(jié)構(gòu)152.串聯(lián)文件
(1)什么是串聯(lián)文件串聯(lián)文件結(jié)構(gòu)是按順序由串聯(lián)的塊組成的,即文件的信息存于若干塊物理塊中,每個(gè)物理塊的最末一個(gè)字作為鏈接字,它指出后繼塊的物理地址。文件的最后一塊的鏈接字為結(jié)束標(biāo)記“^”,它表示文件至本塊結(jié)束。文件系統(tǒng)——文件的物理結(jié)構(gòu)(2)串聯(lián)文件結(jié)構(gòu)例16文件系統(tǒng)——文件的物理結(jié)構(gòu)(3)串聯(lián)文件的特點(diǎn)①
能較好地利用輔存空間②
易于對(duì)文件進(jìn)行增長和擴(kuò)充③
連續(xù)存取時(shí)速度較快文件A100r157r2^r0150磁盤塊號(hào)
100磁盤塊號(hào)
150磁盤塊號(hào)
57文件目錄文件A目錄項(xiàng)
問題:在串聯(lián)文件結(jié)構(gòu)下,存取ri記錄時(shí),應(yīng)如何操作?串聯(lián)文件結(jié)構(gòu)例串聯(lián)文件-文件映照
為了克服串聯(lián)文件的存取效率太低的問題,人們提出文件映照的技術(shù),即把鏈接文件中的鏈接字集中在一結(jié)構(gòu)中,這樣既保持了鏈接文件的優(yōu)點(diǎn),也克服了其缺點(diǎn),DOS、WINDOWS系統(tǒng)就采用了這樣結(jié)構(gòu)。FAT文件系統(tǒng)磁盤文件分配表FAT是以鏈接方式存儲(chǔ)文件的系統(tǒng)中記錄磁盤分配和跟蹤空白盤塊(簇)的數(shù)據(jù)結(jié)構(gòu)。該表在文件系統(tǒng)格式化后產(chǎn)生,其結(jié)構(gòu)如下所示。表的序號(hào)是簇號(hào),從0開始直至N-1(N為盤塊簇總數(shù))。每個(gè)表項(xiàng)中的內(nèi)容為存放文件數(shù)據(jù)的下一個(gè)簇號(hào)。文件的首地址(第一個(gè)簇號(hào))存放在目錄中。因此,從目錄中找到文件的首地址后,就能找到文件在磁盤上的所有存放地址。FAT:文件分配表磁盤格式化后建立,從磁盤的第二個(gè)扇區(qū)開始,有兩個(gè)相同的FAT。第0,1位置專門用途。000H:空閑簇(001H:保留簇)FFFH:文件的結(jié)尾簇FF7H:壞簇XXXH:文件的下一簇17習(xí)題8-5
對(duì)文件A按照連續(xù)文件構(gòu)造,并由4個(gè)邏輯記錄組成(每個(gè)邏輯記錄的大小和磁盤塊大小相同,都為512B)。如果第一個(gè)記錄存放在第100號(hào)磁盤塊上,試畫出這個(gè)文件的結(jié)構(gòu)。文件系統(tǒng)——文件的物理結(jié)構(gòu)17習(xí)題8-6對(duì)文件B按照串聯(lián)文件構(gòu)造,并由4個(gè)邏輯記錄組成(每個(gè)邏輯記錄的大小和磁盤塊大小相同,都為512B)。這4個(gè)邏輯記錄分別存放在第100,157,66,67號(hào)磁盤上,回答如下問題:1)畫出此串連文件的結(jié)構(gòu)2)如果要讀文件B第1560字節(jié)處的信息,問要訪問哪個(gè)磁盤塊?為什么?3)如果要讀文件B第1560字節(jié)處的信息,需要進(jìn)行幾次I/O操作?為什么?文件系統(tǒng)——文件的物理結(jié)構(gòu)173.索引文件
(1)什么是索引文件
為了克服串聯(lián)文件不適合隨機(jī)訪問的缺點(diǎn),構(gòu)造了索引文件:既能充分利用輔存空間,又能隨機(jī)的訪問文件的任一部分。 將邏輯文件順序的劃分成邏輯塊,系統(tǒng)為每個(gè)文件建立邏輯塊號(hào)與物理塊號(hào)的對(duì)照表。這張表稱為該文件的索引表。文件由數(shù)據(jù)和索引表構(gòu)成。這種文件稱為索引文件。
文件系統(tǒng)——文件的物理結(jié)構(gòu)18(2)索引文件結(jié)構(gòu)例文件系統(tǒng)——文件的物理結(jié)構(gòu)文件A索引表指針文件A目錄項(xiàng)r0r1文件目錄023119226329r2r3磁盤塊號(hào)
23磁盤塊號(hào)
19磁盤塊號(hào)
26磁盤塊號(hào)
29文件索引表邏輯塊號(hào)物理塊號(hào)索引文件結(jié)構(gòu)例19(3)索引文件的操作①
索引文件在存儲(chǔ)區(qū)中占兩個(gè)區(qū)
ⅰ索引區(qū):存放索引表
ⅱ數(shù)據(jù)區(qū):存放數(shù)據(jù)文件②訪問索引文件的2步操作ⅰ查文件索引,由邏輯塊號(hào)查得物理塊號(hào)ⅱ由此物理塊號(hào)而獲得所要求的信息(4)索引文件的特點(diǎn)①
直接讀寫任意記錄②
易于文件的增刪文件系統(tǒng)——文件的物理結(jié)構(gòu)204.索引表的組織——多級(jí)索引
(1)直接索引文件系統(tǒng)——文件的物理結(jié)構(gòu)
文件目錄項(xiàng)中有一組表項(xiàng)用于索引。每一個(gè)表項(xiàng)登記的是邏輯記錄所在的磁盤塊號(hào)。文件A目錄項(xiàng)r0r1文件目錄r2r3磁盤塊號(hào)
23磁盤塊號(hào)
89磁盤塊號(hào)
126磁盤塊號(hào)
2292389126229......直接索引文件結(jié)構(gòu)假設(shè)一個(gè)物理塊的大小為512B,計(jì)算文件長度的最大值?(2)一級(jí)間接索引文件系統(tǒng)——文件的物理結(jié)構(gòu)
文件目錄項(xiàng)中有一組表項(xiàng),其內(nèi)容登記的是第一級(jí)索引表塊的塊號(hào)。第一級(jí)索引表塊中的索引表項(xiàng)登記的是文件邏輯記錄所在的磁盤塊號(hào)。文件A目錄項(xiàng)文件目錄5266126229r0塊號(hào)23
...2389r1塊號(hào)89r256塊號(hào)178
...17849
r511塊號(hào)49...一級(jí)間接索引表磁盤塊號(hào)52磁盤塊.........一級(jí)間接索引文件結(jié)構(gòu)假設(shè)一個(gè)物理塊的大小為512B,一個(gè)索引項(xiàng)占用2個(gè)字節(jié),則一個(gè)索引塊最多可容納256個(gè)索引項(xiàng)。計(jì)算文件長度的最大值?(3)二級(jí)間接索引文件系統(tǒng)——文件的物理結(jié)構(gòu)文件目錄項(xiàng)中有一組表項(xiàng),其內(nèi)容登記的是第二級(jí)索引表塊的塊號(hào)。第二級(jí)索引表塊中的索引表項(xiàng)登記的第一級(jí)索引表塊的塊號(hào),第一級(jí)索引表項(xiàng)中登記的是文件邏輯記錄所在的磁盤塊號(hào)。文件A目錄項(xiàng)文件目錄
...
......二級(jí)間接索引
...
......磁盤塊...
...
...
.........
...
一級(jí)間接索引......二級(jí)間接索引文件結(jié)構(gòu)幾種文件物理結(jié)構(gòu)的比較連續(xù)文件的優(yōu)點(diǎn)是不需要額外的空間開銷,只要在文件目錄中指出文件的大小和首塊的塊號(hào)即可,對(duì)順序的訪問效率很高。適應(yīng)于順序存取和隨機(jī)存取。缺點(diǎn)是動(dòng)態(tài)地增長和縮小系統(tǒng)開銷很大;文件創(chuàng)建時(shí)要求用戶提供文件的大小;存儲(chǔ)空間浪費(fèi)較大。串聯(lián)文件克服了連續(xù)文件的不足之處,但文件的隨機(jī)訪問系統(tǒng)開銷較大。適應(yīng)于順序訪問的文件。索引文件既適應(yīng)于順序存訪問,也適應(yīng)于隨機(jī)訪問,是一種比較好的文件物理結(jié)構(gòu),但要有用于索引表的空間開銷和文件索引的時(shí)間開銷。要考慮如何有效的存儲(chǔ)和訪問索引表。UNIX文件系統(tǒng)是使用索引結(jié)構(gòu)的成功例子17習(xí)題8-9某系統(tǒng)磁盤塊大小為512B,文件A共有10個(gè)邏輯記錄(r0~r9),邏輯記錄大小與磁盤塊大小相同。回答如下問題:1)畫出文件A的索引文件結(jié)構(gòu)(磁盤塊由讀者確定)2)當(dāng)要讀文件A的記錄r5時(shí),試問需進(jìn)行多少次I/O操作,要求做必要的說明。課后習(xí)題8-7,8,9,10文件存儲(chǔ)空間的管理文件存儲(chǔ)設(shè)備是分成若干個(gè)大小相等的物理塊,并以塊為單位來交換信息的。哪些塊是空閑的;哪些塊已經(jīng)分配出去;已經(jīng)分配出去的塊被哪些文件占有;(由文件目錄解決)空閑塊的組織,空閑塊的分配與空閑塊的回收。常用空閑塊管理策略:空閑文件目錄空閑塊鏈位示圖文件存儲(chǔ)空間的管理:(1)空閑文件目錄將所有空閑塊記錄在一個(gè)表中,即空閑塊表表中有兩項(xiàng):起始?jí)K號(hào),空閑塊個(gè)數(shù)。序號(hào)第一個(gè)空閑塊號(hào)空閑塊個(gè)數(shù)物理塊號(hào)154(5,6,7,8)2235(23,24,25,26,27)3306(30,31,32,33,34,35)4------分配和釋放磁盤空間時(shí),都要掃描目錄表,直到找到合適的空閑文件位置。這種方法適用于連續(xù)文件,并且適合少量的空閑區(qū),否則效率較低。
(2)空閑塊鏈
把所有空閑塊鏈成一個(gè)鏈,每個(gè)空閑塊中有指向下一個(gè)空閑塊的指針,所有空閑塊構(gòu)成一個(gè)鏈表。不需要磁盤分配表,節(jié)省空間。每次申請(qǐng)空閑塊只需取出鏈表開頭的空閑塊即可。 當(dāng)申請(qǐng)分配存儲(chǔ)空間時(shí),就按需要從鏈?zhǔn)滓来稳∠聨讉€(gè)物理塊分配給文件。當(dāng)回收存儲(chǔ)空間時(shí),將回收的空閑塊依次鏈入空閑塊鏈中。優(yōu)點(diǎn)是簡(jiǎn)單,但是效率低,鏈表操作需要很多I/O操作(3)位示圖
用一串二進(jìn)制位反映磁盤空間中分配使用情況,每個(gè)物理塊對(duì)應(yīng)一位,分配物理塊為1,否則為0。
申請(qǐng)物理塊時(shí),在位示圖中查找為0的位,返回對(duì)應(yīng)物理塊號(hào)。
歸還時(shí),將對(duì)應(yīng)位轉(zhuǎn)置0。
描述能力強(qiáng),適合各種物理結(jié)構(gòu)。位示圖中的計(jì)算:32bit整數(shù)中的1的個(gè)數(shù)1、循環(huán)法:intBitCount1(unsignedintn){unsignedintc=0;//計(jì)數(shù)器for(c=0;n;n>>=1)//循環(huán)移位c+=n&1;//如果當(dāng)前位是1,則計(jì)數(shù)器加1returnc;}位示圖中的計(jì)算:32bit整數(shù)中的1的個(gè)數(shù)2、快速循環(huán)法:intBitCount2(unsignedintn){unsignedintc=0;for(c=0;n;++c)n&=(n-1);//清除最低位的1returnc;}位示圖中的計(jì)算:32bit整數(shù)中的1的個(gè)數(shù)3、查表:intBitCount4(unsignedintn){unsignedinttable[16]={0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};unsignedintcount=0;while(n){count+=table[n&0xf];n>>=4;}returncount;}位示圖中的計(jì)算:32bit整數(shù)中的1的個(gè)數(shù)4、HAKMEM算法:intBitCount4(unsignedintn){unsignedinttmp=n -((n>>1)&) -((n>>2)&);tmp=((tmp+(tmp>>3))&);return(tmp%63);}(代碼中使用8進(jìn)制數(shù),11位8進(jìn)制數(shù)為33位2進(jìn)制數(shù))位示圖中的計(jì)算:32bit整數(shù)中的1的個(gè)數(shù)5、gcc內(nèi)建的位操作輔助函數(shù):__builtin_ffs(x):返回x中最后一個(gè)為1的位是從右向左的第幾位,如 __builtin_ffs(0x789)=1, __builtin_ffs(0x78c)=3 __builtin_ffs(0x0)=0__builtin_ctz(x):x末尾0的個(gè)數(shù)。x=0時(shí)結(jié)果未定義。__builtin_clz(x):x前導(dǎo)0的個(gè)數(shù)。x=0時(shí)結(jié)果未定義。__builtin_popcount(x):x中1的個(gè)數(shù)。文件目錄及其結(jié)構(gòu)文件系統(tǒng)——文件目錄及其結(jié)構(gòu)23文件目錄的重要性
文件系統(tǒng)要解決的核心問題:
1信息的邏輯結(jié)構(gòu)-->存儲(chǔ)介質(zhì)的物理結(jié)構(gòu) 2文件操作-->存儲(chǔ)的I/O指令
轉(zhuǎn)換過程中用到的主要數(shù)據(jù)結(jié)構(gòu)就是文件目錄。文件目錄將文件名和它們?cè)谳o存中的物理地址以及其他文件信息聯(lián)系起來,實(shí)現(xiàn)了按名字查找文件,這是文件系統(tǒng)的基本功能。文件系統(tǒng)——文件目錄及其結(jié)構(gòu)1.文件目錄有關(guān)概念
(1)什么是文件目錄文件目錄是記錄文件的名字、存放地址及其他有關(guān)文件的說明信息和控制信息的數(shù)據(jù)結(jié)構(gòu)。
(2)文件目錄項(xiàng)的內(nèi)容
①
文件名
②
文件邏輯結(jié)構(gòu)說明該文件的記錄是否定長、記錄長度及記錄個(gè)數(shù)等。
文件系統(tǒng)——文件目錄及其結(jié)構(gòu)③
文件物理結(jié)構(gòu):記錄文件的物理結(jié)構(gòu)形式連續(xù)文件——指出文件第一塊的物理地址、文件所占?jí)K數(shù)串聯(lián)文件——指出該文件第一塊的物理地址索引文件——指出索引表地址④
存取控制信息
文件主具有的存取權(quán)限、核準(zhǔn)的其他用戶及其相應(yīng)的存取權(quán)限
⑤
管理信息
文件建立日期、時(shí)間,上一次存取時(shí)間、要求文件保留的時(shí)間等⑥
文件類型
文件的類型,例如可分為數(shù)據(jù)文件、目錄文件、塊存儲(chǔ)設(shè)備文件、字符設(shè)備文件文件系統(tǒng)——文件目錄及其結(jié)構(gòu)文件目錄結(jié)構(gòu)一級(jí)文件目錄多級(jí)文件目錄(樹型文件目錄)62252.一級(jí)文件目錄
(1)什么是一級(jí)文件目錄
系統(tǒng)將已建立的所有文件的文件名、存放地址及有關(guān)的說明信息放在一張表中,這張表稱為一級(jí)文件目錄。
文件系統(tǒng)——文件目錄及其結(jié)構(gòu)文件名物理地址其他信息patestcompilerassemblerabcwang一級(jí)文件目錄26(2)一級(jí)文件目錄的特點(diǎn)實(shí)現(xiàn)了按名存取的功能,比較簡(jiǎn)單;要求文件名和文件之間有一一對(duì)應(yīng)的關(guān)系,即:不允許兩個(gè)文件有相同的名字。
在多用戶環(huán)境中,出現(xiàn)了重名問題,或稱為命名沖突
(3)重名問題所謂“重名”,是指不同用戶對(duì)不同文件起了相同的名字,即兩個(gè)或多個(gè)文件只有一個(gè)相同的符號(hào)名。(命名沖突)為了解決命名沖突、獲得更靈活的命名能力,文件系統(tǒng)必須采用多級(jí)目錄結(jié)構(gòu)文件系統(tǒng)——文件目錄及其結(jié)構(gòu)273.樹型文件目錄
(1)什么是樹型文件目錄在多級(jí)目錄系統(tǒng)中(除最末一級(jí)外),任何一級(jí)目錄的目錄項(xiàng)可以描述一個(gè)目錄文件,也可以描述一個(gè)非目錄文件(數(shù)據(jù)文件),而數(shù)據(jù)文件一定在樹葉上。這樣,就構(gòu)成了一個(gè)樹形層次結(jié)構(gòu)。文件系統(tǒng)——文件目錄及其結(jié)構(gòu)28(2)樹型文件目錄結(jié)構(gòu)
文件系統(tǒng)——文件目錄及其結(jié)構(gòu)abcfedabcahjhjmrgaacid=13id=21id=14id=15id=16id=17id=18id=19id=20id=1id=2id=3id=4id=11id=12id=5id=8id=9id=10id=6id=7根目錄/
子目錄a子目錄b子目錄c子目錄a子目錄f子目錄e子目錄d多級(jí)文件目錄結(jié)構(gòu)29(3)文件路徑名(絕對(duì)路徑)
多級(jí)目錄中,文件的路徑名是由根目錄到該文件的通路上所有目錄文件符號(hào)名和該文件的符號(hào)名組成的字符串,相互之間用分隔符分隔。文件系統(tǒng)——文件目錄及其結(jié)構(gòu)圖中id為15的文件的文件路徑名為/b/f/Jabcfedabcahjhjmrgaacid=13id=21id=14id=15id=16id=17id=18id=19id=20id=1id=2id=3id=4id=11id=12id=5id=8id=9id=10id=6id=7根目錄/
子目錄a子目錄b子目錄c子目錄a子目錄f子目錄e子目錄d30(4)如何解決重名問題文件系統(tǒng)——文件目錄及其結(jié)構(gòu)圖中id為13的文件與id為20的文件有相同的文件名,都為a。
id為13的文件的文件路徑名
id為20的文件的文件路徑名abcfedabcahjhjmrgaacid=13id=21id=14id=15id=16id=17id=18id=19id=20id=1id=2id=3id=4id=11id=12id=5id=8id=9id=10id=6id=7根目錄/
子目錄a子目錄b子目錄c子目錄a子目錄f子目錄e子目錄d33
ⅰ什么是當(dāng)前目錄(又稱值班目錄)
當(dāng)前目錄是當(dāng)前用戶正在使用的文件所在的目錄。當(dāng)指定當(dāng)前目錄后,用戶對(duì)文件的所有訪問都是相對(duì)于“當(dāng)前目錄”進(jìn)行的。這時(shí),文件路徑名是由“當(dāng)前目錄”到信息文件的通路上所有各級(jí)目錄的符號(hào)名加上該信息文件的符號(hào)名組成。ⅱ例1:當(dāng)指定當(dāng)前目錄為id=3時(shí),id為20的文件,其文件路徑名為d/a或./d/a(5)當(dāng)前目錄34使用文件路徑名../../c/a訪問id=12的文件abcfedabcahjhjmrgaacid=13id=21id=14id=15id=16id=17id=18id=19id=20id=1id=2id=3id=4id=11id=12id=5id=8id=9id=10id=6id=7根目錄/
子目錄a子目錄b子目錄c子目錄a子目錄f子目錄e子目錄dⅲ例2:當(dāng)前目錄id=8,訪問子目錄c的文件a(id=12)35(6)鏈接技術(shù)
所謂“鏈接”,就是在相應(yīng)目錄表目之間進(jìn)行鏈接,即一個(gè)目錄中的表目直接指向另一個(gè)目錄表目所在的物理位置。注意,這種鏈接不是直接指向文件,而是指向相應(yīng)的目錄表目。這種辦法也稱為連訪,被共享的文件稱為連訪文件。36假定當(dāng)前目錄為id=3,用文件路徑“./f/k”來直接訪問文件j或用文件路徑“/b/f/k”來直接訪問文件j,id=17abcfedabcahjhjmrgaacid=13id=21id=14id=15id=16id=17id=18id=19id=20id=1id=2id=3id=4id=11id=12id=5id=8id=9id=10id=6id=7根目錄/
子目錄a子目錄b子目錄c子目錄a子目錄f子目錄e子目錄dⅰ例1:子目錄f中的k鏈接到子目錄e中的文件jk38UNIX/Linux下的鏈接文件有兩種,硬連接(HardLink)和軟連接,軟連接又稱符號(hào)鏈接(Symboliclink)。ⅰ軟鏈接符號(hào)鏈接文件中并不包括實(shí)際的文件數(shù)據(jù),而只是包括了它指向文件的路徑。它可以鏈接到任意的文件和目錄,包括處于不同文件系統(tǒng)的文件以及目錄,包括相對(duì)路徑和絕對(duì)路徑。當(dāng)用戶對(duì)鏈接文件操作時(shí),系統(tǒng)會(huì)自動(dòng)的轉(zhuǎn)到對(duì)源文件的操作,但是刪除鏈接文件時(shí),并不會(huì)刪除源文件。下圖是文件的軟鏈接示意圖。UNIX/Linux中的鏈接文件39UNIX/Linux的軟鏈接文件
/usr/joc...foo...引用計(jì)數(shù)=1文件描述
/usr/sue...bar...引用計(jì)數(shù)=1/usr/joc/foo文件的軟鏈接示意圖38ⅰ硬鏈接系統(tǒng)中的每一個(gè)文件或目錄,都有一個(gè)索引節(jié)點(diǎn),通過該索引節(jié)點(diǎn)訪問文件或目錄的內(nèi)容。索引節(jié)點(diǎn)中也存儲(chǔ)了該文件的所有屬性(不包括文件名)。多個(gè)目錄項(xiàng)指向同一個(gè)索引節(jié)點(diǎn),就是硬鏈接。刪除一個(gè)硬鏈接文件時(shí),引用計(jì)數(shù)減1,只要不為0,文件索引節(jié)點(diǎn)和文件內(nèi)容仍然存在。硬鏈接只能同一個(gè)文件系統(tǒng)中,并且不能是目錄。下圖是文件的硬鏈接示意圖。39UNIX/Linux的硬鏈接文件
/usr/joc...foo...引用計(jì)數(shù)=2文件描述/usr/sue...bar...文件的硬鏈接示意圖利用符號(hào)鏈實(shí)現(xiàn)文件共享(軟鏈接)test1目錄Ctest2Count=1目錄Btest1test2目錄C目錄BCount=1擁有者刪除文件test1后指針懸空基于索引結(jié)點(diǎn)的共享方式(硬鏈接)test1目錄Ctest2Count=1目錄Btest1test2目錄C目錄B鏈接前Count=2Count=1建立鏈接后擁有者刪除文件test1后38為什么不能對(duì)目錄進(jìn)行硬鏈接:1、非常容易造成目錄的死循環(huán),并且文件系統(tǒng)沒有很好的辦法檢測(cè)。(軟鏈接可以,因?yàn)檐涙溄游募且环N特殊的文件類型,文件系統(tǒng)可以檢測(cè)到并做特殊處理來防止死循環(huán))2、父目錄的含義發(fā)生變化,有多個(gè)父目錄,甚至可能父子目錄的輩份發(fā)生混亂。3、文件目錄結(jié)構(gòu)是一個(gè)樹形結(jié)構(gòu),不能有環(huán)。文件共享與安全文件系統(tǒng)——文件共享與安全4.文件共享與安全
(1)文件共享
文件共享是指某一個(gè)或某一部分文件可以讓事先規(guī)定的某些用戶共同使用。文件系統(tǒng)——文件共享與安全(2)文件安全①什么是文件安全
文件的安全問題是由文件共享引發(fā)的。所謂文件安全,就是文件的保護(hù)問題。文件的保護(hù)是指文件本身不得被未經(jīng)文件主授權(quán)的任何用戶存取,而對(duì)于授權(quán)用戶也只能在允許的存取權(quán)限內(nèi)使用文件。②如何進(jìn)文件的保護(hù)
需要對(duì)用戶的權(quán)限進(jìn)行驗(yàn)證。所謂存取權(quán)限的驗(yàn)證,是指用戶存取文件之前,需要檢查用戶的存取權(quán)限是否符合規(guī)定,符合者允許使用,否則拒絕。文件系統(tǒng)——文件共享與安全③用戶存取權(quán)限的類型EXCUTE: 執(zhí)行文件(x)READ: 讀文件內(nèi)容(r)UPDATE: 修改文件內(nèi)容WRITE: 修改、刪除、增加文件內(nèi)容(w)DELETE: 刪除文件CHANGE: 改變文件屬性3.驗(yàn)證用戶存取權(quán)限的方法(1)訪問控制矩陣
文件用戶file1file2file3……user1rwrwuser2x--……(2)存取控制表
某一文件只與特定幾個(gè)少數(shù)用戶有關(guān),只記錄一個(gè)文件和不同用戶、用戶組的權(quán)限
文件用戶file1file2file3……文件主rwrw用戶組Ax--用戶組Bw--其他---(3)用戶權(quán)限表 將一個(gè)用戶或用戶組的所有相關(guān)文件集中存放在一起
用戶文件用戶組AsqrtRWtestRalphaRE......abcRW(3)用戶權(quán)限表 將一個(gè)用戶或用戶組的所有相關(guān)文件集中存放在一起
文件用戶file1file2file3……用戶(組)Arwrw
文件用戶file1file2file3……用戶(組)Brwrw(4)口令(5)密碼87文件操作與文件備份文件系統(tǒng)——文件操作和文件備份401.文件操作
(1)常用的文件操作命令create
創(chuàng)建一個(gè)新文件delete
從系統(tǒng)目錄中撤消一個(gè)文件rename
在系統(tǒng)目錄中改變文件的名字fileattribute 設(shè)置文件屬性open
打開文件close
關(guān)閉文件write
寫到一個(gè)文件(或設(shè)備)上read
從一個(gè)文件(或設(shè)備)讀入數(shù)據(jù)信息文件系統(tǒng)——文件操作和文件備份401.文件操作
(2)常用的文件操作命令dirctoryread 讀目錄信息diskspace 確定一個(gè)設(shè)備上可用磁盤區(qū)域的大小link建立鏈接unlink刪除鏈接filedate 改變文件的時(shí)間文件系統(tǒng)——文件操作和文件備份41
①
打開文件操作所謂打開文件就是把該文件的有關(guān)目錄表目復(fù)制到主存中約定的區(qū)域,建立文件控制塊,建立用戶和這個(gè)文件的聯(lián)系。②關(guān)閉文件操作所謂關(guān)閉文件就是用戶宣布這個(gè)文件當(dāng)前不再使用,系統(tǒng)將其在主存中的文件控制塊刪去,因而也就切斷了用戶同這個(gè)文件的聯(lián)系。若一個(gè)文件的目錄表目被復(fù)制到主存,則稱它為已打開的(或活動(dòng)的)文件。這些目錄表目在主存中統(tǒng)一存放,形成一張活動(dòng)文件表。已打開的文件可以多次使用。文件系統(tǒng)——文件操作和文件備份422.文件備份
(1)什么是文件備份為了能在軟、硬件失效的意外情況下恢復(fù)文件,保證文件的完整性、數(shù)據(jù)的連續(xù)可利用性,文件系統(tǒng)提供適當(dāng)?shù)臋C(jī)構(gòu),以便復(fù)制備份。
(2)文件備份的方法
①
周期性轉(zhuǎn)儲(chǔ)(全量轉(zhuǎn)儲(chǔ))
按固定的時(shí)間周期把存儲(chǔ)器中所有文件的內(nèi)容轉(zhuǎn)存到某種介質(zhì)上,通常是磁帶或磁盤。在系統(tǒng)失效時(shí),使用這些轉(zhuǎn)存磁盤或磁帶,將所有文件重新建立并恢復(fù)到最后一次轉(zhuǎn)存時(shí)的狀態(tài)。
文件系統(tǒng)——文件操作和文件備份43②增量性轉(zhuǎn)儲(chǔ)
這種技術(shù)轉(zhuǎn)儲(chǔ)的只是從上次轉(zhuǎn)儲(chǔ)以后已經(jīng)改變過的信息;增量轉(zhuǎn)儲(chǔ)的信息量較小,故轉(zhuǎn)儲(chǔ)可在更短的時(shí)間周期內(nèi)進(jìn)行。
③文件操作事務(wù),日志文件系統(tǒng),文件系統(tǒng)快照(3)文件備份的發(fā)展①
動(dòng)態(tài)備份②
遠(yuǎn)程備份技術(shù)文件系統(tǒng)——文件操作和文件備份UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)技術(shù)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)實(shí)現(xiàn)一個(gè)文件系統(tǒng)的主要考慮內(nèi)容①確定文件的屬性、邏輯結(jié)構(gòu)、物理結(jié)構(gòu);②空閑物理空間(物理塊)的管理;③目錄結(jié)構(gòu);④文件操作;UNIX文件系統(tǒng)的特點(diǎn)①文件是無結(jié)構(gòu)的字符流式文件,索引結(jié)構(gòu);②目錄結(jié)構(gòu):樹型層次結(jié)構(gòu);③可安裝拆卸的文件系統(tǒng);
④將外部設(shè)備和目錄統(tǒng)一作為文件一樣對(duì)待;44①
普通文件用戶程序、數(shù)據(jù)文件②目錄文件用于組織和形成樹型目錄結(jié)構(gòu)中的一個(gè)單位,目錄文件的內(nèi)容由若干目錄項(xiàng)組成。③
特別文件與硬件設(shè)備有關(guān)的文件稱為特別文件。包括塊設(shè)備文件、字符設(shè)備文件。與計(jì)算機(jī)連接每一種輸入輸出設(shè)備都有一個(gè)特別文件。它是操作系統(tǒng)核心用于存取輸入輸出設(shè)備的通道,是用戶與硬件設(shè)備聯(lián)系的橋梁。
(2)UNIX文件的類型45文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)462.UNIX系統(tǒng)的索引文件結(jié)構(gòu)(1)文件索引節(jié)點(diǎn)①什么是文件索引節(jié)點(diǎn)
UNIX系統(tǒng)把文件目錄項(xiàng)中除了名字以外的信息全部存放到一個(gè)磁盤的數(shù)據(jù)塊上,這種數(shù)據(jù)塊就是文件索引節(jié)點(diǎn)
(indexnode),簡(jiǎn)稱i節(jié)點(diǎn),又稱為磁盤索引節(jié)點(diǎn)。
在目錄項(xiàng)中只有文件的名字和對(duì)應(yīng)i節(jié)點(diǎn)的編號(hào)。文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)②磁盤索引節(jié)點(diǎn)結(jié)構(gòu)文件所有者標(biāo)識(shí)i_uid,i_gid地址索引表i_addr[13]文件類型i_type文件存取許可權(quán)i_mode聯(lián)接計(jì)數(shù)i_ilink文件存取時(shí)間i_time文件長度i_sizeⅰ文件所有者標(biāo)識(shí):定義對(duì)一個(gè)文件具有存取權(quán)的用戶集合,分為文件所有者、用戶組所有者ⅱ文件類型:分為正規(guī)文件、目錄文件、字符特殊文件或塊特殊文件ⅲ文件存取許可權(quán):按文件所有者、文件的用戶組及其他用戶三個(gè)類別對(duì)文件施行保護(hù)。每類都具有讀、寫、執(zhí)行該文件的存取權(quán),并且能分別地設(shè)置。ⅳ文件聯(lián)結(jié)數(shù)目:表示在文件目錄結(jié)構(gòu)中,有多少個(gè)文件名指向該文件。每當(dāng)增加一個(gè)名字時(shí),i_ilink值加1,減少一個(gè)名字時(shí)其值減1。當(dāng)其值減為0時(shí),該文件才能真正刪除。磁盤索引節(jié)點(diǎn)的結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)ⅴ地址索引表:文件數(shù)據(jù)的磁盤地址明細(xì)表,在UNIX第七版本用i_addr[8]來描述。在UNIXsystemⅤ中用i_addr[13]來描述。49③磁盤索引節(jié)點(diǎn)示例所有者mjb用戶組os類型普通文件許可權(quán)wrx-rx--x最后一次讀文件2013年10月23日下午1∶45最后一次寫文件2013年10月22日上午10∶30最后一次改變索引節(jié)點(diǎn)2013年10月23日下午1∶30文件長度6030字節(jié)磁盤地址i_addr[13]磁盤索引節(jié)點(diǎn)示例文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)50(2)UNIX文件索引結(jié)構(gòu)
UNIX系統(tǒng)采用文件索引結(jié)構(gòu),文件所在的磁盤物理塊號(hào)可以不連續(xù)。
討論
UNIX第七版本的文件索引結(jié)構(gòu)
UNIXsystemV的文件索引結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)51......
i_addr[0]i_addr[1]i_addr[2]i_addr[3]i_addr[4]i_addr[5]i_addr[6]i_addr[7]1005710020057200在文件i節(jié)點(diǎn)中使用一個(gè)具有8個(gè)數(shù)據(jù)項(xiàng)的數(shù)組i_addr[]來描述文件物理結(jié)構(gòu)構(gòu)造小型文件時(shí),數(shù)組i_addr[]作為直接索引表文件的大?。?×512B①UNIX第七版本的文件索引結(jié)構(gòu)ⅰ小型文件UNIX7
版本的小型文件結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)52ⅱ大型文件數(shù)組i_addr[]用于一級(jí)間接索引,只使用i_addr[0]-addr[6]系統(tǒng)支持的文件最大可為:7×256×512B......
i_addr[0]i_addr[1]i_addr[2]i_addr[3]i_addr[4]i_addr[5]i_addr[6]i_addr[7]38797200100...58...3738710037...322...20058322...UNIX7
版本的大型文件結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)53ⅲ巨型文件296466......
i_addr[0]i_addr[1]i_addr[2]i_addr[3]i_addr[4]i_addr[5]i_addr[6]i_addr[7]387139200100...58............482768389...76829687...2005893...37934828738710037...389108108UNIX7
版本的巨型文件結(jié)構(gòu)文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)466...54巨型文件支持的文件大小i_addr[0]——i_addr[6]
用于一級(jí)間接索引i_addr[7]
用于二級(jí)間接索引系統(tǒng)支持的文件最大可為
(7×256+2562)×512B文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)②UNIXsystemⅴ的文件索引結(jié)構(gòu)UNIXsystemV采用i_addr[13]地址表來構(gòu)造文件的索引結(jié)構(gòu)。55系統(tǒng)支持的文件最大可為:(10+256)×512B
......一級(jí)間接索引二級(jí)間接索引三級(jí)間接索引i_addr[0]i_addr[1]i_addr[2]i_addr[3]i_addr[4]i_addr[5]i_addr[6]i_addr[7]i_addr[8]i_addr[9]i_addr[12]i_addr[11]i_addr[10]..............................文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)563.UNIX系統(tǒng)文件目錄結(jié)構(gòu)(1)目錄項(xiàng)與目錄文件①
目錄文件
每個(gè)目錄表為一個(gè)目錄文件。目錄文件由目錄項(xiàng)組成。②目錄項(xiàng)每個(gè)目錄項(xiàng)包含16個(gè)字節(jié)(UNIX系統(tǒng)老版本)。在目錄項(xiàng)中,第1、2字節(jié)為相應(yīng)文件的輔存i節(jié)點(diǎn)號(hào);后14個(gè)字節(jié)為文件名。一個(gè)輔存磁盤塊(512B)包含32個(gè)目錄項(xiàng)。文件目錄項(xiàng)結(jié)構(gòu)i節(jié)點(diǎn)號(hào)
文件名
12315文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)57(2)UNIX系統(tǒng)樹型目錄結(jié)構(gòu)①每個(gè)文件系統(tǒng)都有一個(gè)根目錄文件,它的輔存i節(jié)點(diǎn)是存儲(chǔ)設(shè)備上索引節(jié)點(diǎn)區(qū)中的第一個(gè)。②
打開某個(gè)文件時(shí),從根目錄的i節(jié)點(diǎn)可以找到根目錄文件的索引結(jié)構(gòu),得到根目錄文件中的目錄項(xiàng)。③
將待打開文件的路徑信息與目錄文件中的目錄項(xiàng)逐一比較,可以得到下級(jí)目錄的i節(jié)點(diǎn)號(hào),并最終得到目標(biāo)文件的i節(jié)點(diǎn)號(hào)。從i節(jié)點(diǎn)號(hào)中的索引表,得到數(shù)據(jù)文件的存儲(chǔ)塊號(hào),實(shí)現(xiàn)對(duì)目標(biāo)文件的隨機(jī)存取。文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)58UNIX系統(tǒng)的目錄結(jié)構(gòu)能方便地實(shí)現(xiàn)文件的訪問和隨機(jī)存取文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)根目錄文件
i節(jié)點(diǎn)......i_addr[0]i_addr[1]A0目錄文件
i節(jié)點(diǎn)......i_addr[0]i_addr[1]...A31目錄文件
i節(jié)點(diǎn)......i_addr[0]i_addr[5]
根目錄文件文件名i節(jié)點(diǎn)號(hào)...A0A31
根目錄文件
A0目錄文件文件名i節(jié)點(diǎn)號(hào)...B2B31...
A0目錄文件文件名i節(jié)點(diǎn)號(hào)...BX0BX31.........B2數(shù)據(jù)文件
i節(jié)點(diǎn)......i_addr[0]i_addr[1]
B31,BX0數(shù)據(jù)文件i節(jié)點(diǎn)......i_addr[0]i_addr[6]...
BX31數(shù)據(jù)文件i節(jié)點(diǎn)......i_addr[0]...UNIX樹型目錄結(jié)構(gòu)磁盤塊磁盤塊59(3)文件目錄結(jié)構(gòu)中的勾鏈(硬鏈接)
UNIX文件目錄結(jié)構(gòu)中帶有交叉勾鏈。用戶可以用不同的文件路徑名訪問一個(gè)文件。
文件勾鏈在用戶看來是為一個(gè)已存在的文件另起一個(gè)路徑名。 文件勾鏈的結(jié)果表現(xiàn)為一個(gè)文件由多個(gè)目錄項(xiàng)所指。
UNIX只允許對(duì)非目錄文件實(shí)行勾鏈。
文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)60例:一個(gè)文件有兩個(gè)名字
/a/b/file1/c/d/file2
兩個(gè)文件的目錄項(xiàng)同時(shí)指向一個(gè)數(shù)據(jù)文件i節(jié)點(diǎn),如下圖所示。
目錄文件/a/b文件名i節(jié)點(diǎn)號(hào)file1
目錄項(xiàng)i節(jié)點(diǎn)...i_nlink:2i_addr[5]......i_addr[0]
目錄文件/c/d文件名i節(jié)點(diǎn)號(hào)file2
目錄項(xiàng)文件存儲(chǔ)塊目錄結(jié)構(gòu)中的勾鏈文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)614.UNIX系統(tǒng)的打開文件機(jī)構(gòu)(1)活動(dòng)i節(jié)點(diǎn)表文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)活動(dòng)i節(jié)點(diǎn)(主存索引節(jié)點(diǎn))的結(jié)構(gòu)如下文件目錄結(jié)構(gòu),文件索引節(jié)點(diǎn)和索引表都存儲(chǔ)在輔存上,為了提高系統(tǒng)效率,減少主存空間的占用,系統(tǒng)設(shè)置了打開文件和關(guān)閉文件操作。當(dāng)打開一個(gè)文件時(shí),建立用戶與該文件的聯(lián)系,就是將輔存中的相關(guān)目錄項(xiàng),輔存索引節(jié)點(diǎn)和索引表拷貝到主存中。文件系統(tǒng)中管理這一工作的機(jī)構(gòu)稱為打開文件機(jī)構(gòu)。打開文件機(jī)構(gòu)由活動(dòng)i節(jié)點(diǎn)表、打開文件表和用戶文件描述符表組成。
當(dāng)執(zhí)行打開文件操作時(shí),將文件輔存i節(jié)點(diǎn)的有關(guān)信息拷貝到主存,形成活動(dòng)i節(jié)點(diǎn)表。62文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)主存索引節(jié)點(diǎn)狀態(tài)i_flag設(shè)備號(hào)i_dev索引節(jié)點(diǎn)號(hào)i_number引用計(jì)數(shù)i_count文件所有者標(biāo)識(shí)號(hào)i_uid,i_gid文件類型i_type文件存取許可權(quán)i_mode文件聯(lián)結(jié)數(shù)目i_nlink文件長度i_size文件地址索引表i_addr[13]主存i節(jié)點(diǎn)結(jié)構(gòu)活動(dòng)i節(jié)點(diǎn)(主存索引節(jié)點(diǎn))的結(jié)構(gòu)
63(2)系統(tǒng)打開文件表文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)系統(tǒng)打開文件表結(jié)構(gòu)
一個(gè)文件可以被同一進(jìn)程或不同進(jìn)程,用同一或不同路徑名,相同的或互異的操作要求(讀、寫)同時(shí)打開。為了記錄打開文件所需的附加信息,文件系統(tǒng)設(shè)置了一個(gè)全程核心結(jié)構(gòu)—系統(tǒng)打開文件表。讀寫標(biāo)志f_flag引用計(jì)數(shù)f_count指向主存索引節(jié)點(diǎn)的指針f_inode讀/寫位置指針f_offset系統(tǒng)打開文件表結(jié)構(gòu)64(3)用戶文件描述符表文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)(4)實(shí)例
用戶進(jìn)程擴(kuò)充控制塊user中的一個(gè)數(shù)組u_ofile[NOFILE]
稱為用戶文件描述符表,其中的每一項(xiàng)(指針)指向系統(tǒng)打開文件表的一個(gè)表項(xiàng)。一個(gè)打開文件在用戶文件描述表中所占的位置就是它的文件描述符(或稱打開文件號(hào))。進(jìn)程可以打開不同的文件,也可以對(duì)同一文件以不同的操作方式打開。①假定一個(gè)進(jìn)程執(zhí)行下列代碼
fd1=open(“/etc/passwd”,O_RDONLY);
fd2=open(“l(fā)ocal”,OWR_ONLY);
fd3=open(“/etc/passwd”,O_RDWR);65文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)②該進(jìn)程打開文件后的數(shù)據(jù)結(jié)構(gòu)
用戶文件描述符表系統(tǒng)打開文件表14012345...f_flag:讀f_count=1f_offset......f_flag:寫f_count=1f_offsetf_flag:讀-寫f_count=1f_offset......引用數(shù)i_count=2......引用數(shù)i_count=1主存索引節(jié)點(diǎn)表文件/edc/passwd文件load打開文件后的數(shù)據(jù)結(jié)構(gòu)665.文件存儲(chǔ)器空閑塊的管理(1)文件卷和卷管理塊文件系統(tǒng)——UNIX文件系統(tǒng)的主要結(jié)構(gòu)及實(shí)現(xiàn)
文件卷是指可以有組織的存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度知識(shí)產(chǎn)權(quán)質(zhì)押貸款合同違約金賠償與風(fēng)險(xiǎn)控制
- 2025年度影視演員經(jīng)紀(jì)合作協(xié)議-經(jīng)紀(jì)公司專業(yè)代理合同
- 二零二五年度2025年度食堂工作人員食品安全監(jiān)督聘用合同
- 二零二五年度2025年農(nóng)業(yè)科技示范園經(jīng)營權(quán)承包合同
- 2025年度倉儲(chǔ)物流租賃合同提前解除及倉儲(chǔ)物資處理協(xié)議
- 2025年度房屋租賃合同租賃雙方責(zé)任版
- 金融科技推動(dòng)小微企業(yè)在村鎮(zhèn)銀行的融資模式
- 2025年度餐飲店服務(wù)員培訓(xùn)與職業(yè)發(fā)展規(guī)劃合同
- 二零二五年度家庭式住宅租賃合同(含家具電器)
- 融合智能交互技術(shù)的辦公家具設(shè)計(jì)趨勢(shì)研究
- 《揚(yáng)州東關(guān)街掠影》課件
- 環(huán)保行業(yè)研究報(bào)告
- 物流服務(wù)項(xiàng)目的投標(biāo)書
- 廣西太陽能資源分析
- 地鐵車站低壓配電及照明系統(tǒng)
- 行業(yè)會(huì)計(jì)比較(第三版)PPT完整全套教學(xué)課件
- 值機(jī)業(yè)務(wù)與行李運(yùn)輸實(shí)務(wù)(第3版)高職PPT完整全套教學(xué)課件
- 高考英語語法填空專項(xiàng)訓(xùn)練(含解析)
- 42式太極劍劍譜及動(dòng)作說明(吳阿敏)
- 部編版語文小學(xué)五年級(jí)下冊(cè)第一單元集體備課(教材解讀)
- 仁愛英語九年級(jí)下冊(cè)單詞表(中英文)
評(píng)論
0/150
提交評(píng)論