第七,八章文件和存儲(chǔ)管理

目錄

文件控制塊---FCB

為了能對(duì)一個(gè)文件進(jìn)行正確的存取,必須為文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),稱(chēng)之為文件控制塊FCB

文件與文件控制塊一一對(duì)應(yīng)

記錄文件名及其存放地址、文件的說(shuō)明和控制信息

文件管理程序結(jié)組于文件控制塊中的信息對(duì)文件施以各種操作

把文件控制塊的有序幾何成為文件目錄。

即一個(gè)文件控制塊就是一個(gè)目錄項(xiàng),通常一個(gè)文件目錄也被看作是一個(gè)文件,稱(chēng)為目錄文件。

目錄管理

對(duì)文件實(shí)施有效的管理。必須對(duì)他們加以妥善組織,主要是兩大操作。

基本信息記錄FCB、目錄項(xiàng)

方便檢索、管理

目錄管理要求

實(shí)現(xiàn)安明存取

提高對(duì)目錄的檢索速度

文件共享

允許文件重名。

FCB內(nèi)容

在文件控制塊中,通常含有以下三類(lèi)信息。

基本信息類(lèi)

包括文件名。文件物理位置,文件邏輯結(jié)構(gòu),文件的物理結(jié)構(gòu)。

存取控制信息類(lèi)

包括文件主的存取權(quán)限,核準(zhǔn)用戶(hù)的存取權(quán)限和一般用戶(hù)的存取權(quán)限。

使用信息類(lèi)

建立日期和時(shí)間、文件上次修改的日期和時(shí)間

當(dāng)前使用信息:打開(kāi)該文件的進(jìn)程數(shù)、是否唄進(jìn)程鎖住。是否已修改等。

MS-DOS的文件控制塊

關(guān)于文件檢索的速度

文件FCB組成的目錄文件存放于磁盤(pán),需要時(shí)要從磁盤(pán)將目錄內(nèi)容調(diào)入內(nèi)存進(jìn)行檢索使用。

如果目錄占用5個(gè)盤(pán)塊,則至多需啟動(dòng)5次磁盤(pán)讀寫(xiě)。

索引節(jié)點(diǎn)

引入

文件目錄占大量的盤(pán)塊,需要進(jìn)行的磁盤(pán)讀寫(xiě)開(kāi)銷(xiāo)越大減少實(shí)際檢索的i洗腦洗量就減少以哦對(duì)那個(gè)磁頭的開(kāi)銷(xiāo)。提高速度

目錄一般時(shí)按名檢索。而直接找到正確文件前,只關(guān)心文件名,不需要其他的文件描述信息。目錄中這部分內(nèi)容的調(diào)入不是必須的

所以將文件名、文件具體信息分開(kāi),使文件描述信息單獨(dú)形成一個(gè)索引結(jié)點(diǎn)。

索引節(jié)點(diǎn)從外存到內(nèi)存的過(guò)程中有不同的形式:

磁盤(pán)索引結(jié)點(diǎn)

存放磁盤(pán)上的索引節(jié)點(diǎn)。主要包括:文件主標(biāo)識(shí)符。文件類(lèi)型、文件存取權(quán)限、文件物理地址。文件長(zhǎng)度、文件連接計(jì)數(shù),文件存取時(shí)間。

內(nèi)存索引結(jié)點(diǎn)

文件被打開(kāi)后。將磁盤(pán)索引結(jié)點(diǎn)拷貝到內(nèi)存索引結(jié)點(diǎn)中以便使用,比磁盤(pán)索引結(jié)點(diǎn)增加了一下內(nèi)容:索引結(jié)點(diǎn)編號(hào)、狀態(tài)、訪問(wèn)計(jì)數(shù)、文件所屬文件系統(tǒng)的邏輯設(shè)備號(hào)、鏈接指針。

目錄結(jié)構(gòu)

目錄結(jié)構(gòu)的組織、關(guān)系到文件系統(tǒng)的存取速度、也關(guān)系到文件的共享性和安全性。

組織好文件的目錄。使設(shè)計(jì)好文件系統(tǒng)的重要環(huán)節(jié)。

單極目錄結(jié)構(gòu)

最簡(jiǎn)單的目錄結(jié)構(gòu)

整個(gè)文件系統(tǒng)中只建立一張目錄表,每個(gè)文件一個(gè)目錄項(xiàng),含有文件相關(guān)信息。

每建立一個(gè)新文件:

先檢索所有目錄項(xiàng),保證文件名唯一。

獲得一個(gè)空白目錄項(xiàng)。填入相關(guān)信息。修改狀態(tài)位

刪除一個(gè)文件:

找到對(duì)應(yīng)目錄項(xiàng)?;厥瘴募加每臻g,刪除目錄項(xiàng)。

優(yōu)點(diǎn):簡(jiǎn)單、能實(shí)現(xiàn)目錄管理的基本功能-按名存取

缺點(diǎn):

文件檢索時(shí)需要搜遍整個(gè)目錄文件,范圍大速度滿(mǎn),

不允許重名,名字過(guò)多難于記憶,對(duì)于多用戶(hù)環(huán)境重名難以避免,

不敗你于實(shí)現(xiàn)文件共享,一般只適用于單機(jī)環(huán)境

兩級(jí)目錄結(jié)構(gòu)

為每一個(gè)用戶(hù)建立一個(gè)單獨(dú)的用戶(hù)文件目 錄UFD,UFD由用戶(hù)所有文件的文件控制 塊組成。

系統(tǒng)建立一個(gè)主文件目錄MFD, MFD中 每個(gè)用戶(hù)目錄文件都占有一個(gè)目錄項(xiàng),其 中包括用戶(hù)名和指向UFD的指針。

兩級(jí)目錄的特點(diǎn)

基本克服了單級(jí)目錄的缺點(diǎn),并具有以 下優(yōu)點(diǎn):

提高了檢索目錄的速度。

在不同的目錄中可重名。

不同用戶(hù)還可以使用相同/不同的文件名來(lái) 訪問(wèn)系統(tǒng)中的同一個(gè)共享文件。

不提供子目錄操作,還不方便;各用戶(hù) 之間被完全隔離的話用戶(hù)訪問(wèn)其他用戶(hù) 文件時(shí),不方便合作。

鏈接有兩種形式

隱式鏈接

文件空間信息的目錄項(xiàng) 中沒(méi)有鏈接數(shù)據(jù)

◆鏈接信息隱含記錄在盤(pán)塊 數(shù)據(jù)中;

◆每個(gè)盤(pán)塊拿出若干字節(jié), 記錄指向下一盤(pán)塊號(hào)的指 針。

◆問(wèn)題:只能順著盤(pán)塊讀取, 可靠性低

顯式鏈接(FAT)

◆記錄盤(pán)塊鏈接的 指針顯示地記錄為 一張鏈接表

◆所有已分配的盤(pán) 塊號(hào)都記錄在其中, 稱(chēng)文件分配表

◆為了提高文件系 統(tǒng)訪問(wèn)速度,F(xiàn)AT 一般常駐內(nèi)存

◆屬于一個(gè)文件的盤(pán)塊通過(guò)鏈接 成為一體,每個(gè)鏈條的首地址作 為文件地址記錄在相應(yīng)文件的 FCB的“物理地址”字段中

計(jì)算

索引分配

鏈接的不足 ?順序檢索的時(shí)間成本:不能支持高效的盤(pán)塊直接存取。 要對(duì)一個(gè)文件進(jìn)行直接存取,仍需在FAT中順序的查找 許多盤(pán)塊號(hào)。

鏈接信息的空間成本:FAT需占用較大的內(nèi)存空間。當(dāng) 磁盤(pán)容量較大時(shí),F(xiàn)AT可能要占用數(shù)MB以上的內(nèi)存空 間。這是令人難以忍受的

改進(jìn): 系統(tǒng)運(yùn)行時(shí)只涉及部分文件,F(xiàn)AT表無(wú)需全部調(diào)入內(nèi)存 ?

每個(gè)文件單獨(dú)建索引表(物理盤(pán)塊索引),記錄所有分 配給它的盤(pán)塊號(hào);

建立文件時(shí),便分配一定的外存空間用于存放文件盤(pán)塊 索引表信息;

單級(jí)索引分配

◆ 索引形式適合大文件

◆ 中、小型文件,只需若干鏈接即可。若用索引 分配方式,用一個(gè)盤(pán)塊存放少量索引信息反而 不適用。

多級(jí)索引

◆若文件較大,存放索引表也需要多個(gè) 盤(pán)塊(索引盤(pán)塊)。

◆索引盤(pán)塊亦需要按順序管理起來(lái) ?若索引盤(pán)塊數(shù)量較少用指針鏈接的方式即 可;

若索引盤(pán)塊較多,需對(duì)索引盤(pán)塊也采用索 引方式管理,形成多級(jí)索引。

多級(jí)索引計(jì)算

混合組織索引

多種索引方式相結(jié)合,以UNIX system V的 索引結(jié)點(diǎn)為例: 一個(gè)索引結(jié)點(diǎn)定義為13個(gè)地址項(xiàng):

iaddr(0) ~iaddr(12),總的來(lái)說(shuō)分為兩種:直接 地址、間接地址 ?

iaddr(0)~iaddr(9)存放直接地址,即存 文件數(shù)據(jù)的盤(pán)塊號(hào); ?

iaddr(10)存放單級(jí)索引的索引盤(pán)塊號(hào);

剩余的用于文件較大時(shí)存放多級(jí)索引數(shù)據(jù)。

iaddr(11)存放二級(jí)索引的主索引盤(pán)塊號(hào)

iaddr(12)存放三級(jí)索引的主索引盤(pán)塊號(hào)

存儲(chǔ)空間的管理

空閑表法和空閑鏈表法

空閑表法 ?

常用于連續(xù)分配管理方式

①數(shù)據(jù)結(jié)構(gòu) ?

系統(tǒng)為外存上的所有空閑區(qū)建立 一張空閑表 ?每個(gè)空閑區(qū)對(duì)應(yīng)一個(gè)空閑表項(xiàng) (表項(xiàng)包括序號(hào)、空閑區(qū)的第一 個(gè)盤(pán)塊號(hào)、空閑盤(pán)塊數(shù)等。) ?

將所有空閑區(qū)按其起始盤(pán)塊號(hào)遞 增的次序排列,如右圖。

② 存儲(chǔ)空間的分配與回收操作 ? 與內(nèi)存的動(dòng)態(tài)分配類(lèi)似,同樣可采用首次適 應(yīng)算法、循環(huán)首次適應(yīng)算法等。 ?

回收主要解決對(duì)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)修改。 ?

應(yīng)該說(shuō)明,雖然很少采用連續(xù)分配方式,然 而在外存的管理中,由于它具有較高的分配 速度,可減少訪問(wèn)磁盤(pán)的I/O頻率,故它在 諸多分配方式中仍占有一席之地。(如實(shí)現(xiàn) 虛擬用的部分外存就是連續(xù)分配方式

空閑鏈表法

將所有空閑盤(pán)區(qū)拉成一條空閑鏈。

數(shù)據(jù)結(jié)構(gòu):鏈 根據(jù)構(gòu)成鏈所用基本元素的不同,可 把鏈表分成兩種形式:空閑盤(pán)塊鏈 ? 空閑盤(pán)區(qū)鏈

空閑盤(pán)塊鏈

◆將磁盤(pán)上的所有空閑空間,以盤(pán)塊為單位拉成一 條鏈。

◆因創(chuàng)建文件而請(qǐng)求分配空間時(shí),系統(tǒng)從鏈?zhǔn)滓来?摘下適當(dāng)數(shù)目的空閑盤(pán)塊分配給用戶(hù)。

◆因刪除文件而釋放存儲(chǔ)空間時(shí),系統(tǒng)將回收的盤(pán) 塊依次插入空閑盤(pán)塊鏈的末尾。

◆優(yōu)點(diǎn):分配和回收一個(gè)盤(pán)塊的過(guò)程非常簡(jiǎn)單,但 為一個(gè)文件分配盤(pán)塊時(shí),可能要重復(fù)操作多次

空閑盤(pán)區(qū)鏈

◆分配通常采用首次適應(yīng)算法。回收盤(pán)區(qū)時(shí),將回收 區(qū)與相鄰的空閑盤(pán)區(qū)相合并。

為提高檢索速度,可以采用顯式方法,為空閑盤(pán)區(qū)建立 一張鏈表放在內(nèi)存中。

◆分配、回收操作涉及的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)的處理方便

位示圖法——位示圖

利用二進(jìn)制的一位來(lái)表示一個(gè)盤(pán)塊的使用情況。

值為0表示對(duì)應(yīng)的盤(pán)塊空閑,為1表示已分配。

有的系 統(tǒng)則相反。

磁盤(pán)上的所有盤(pán)塊都有一個(gè)二進(jìn)制位與之對(duì)應(yīng),這樣 由所有盤(pán)塊所對(duì)應(yīng)的位構(gòu)成一個(gè)集合,稱(chēng)為位示圖。

◆總塊數(shù)=m*n??捎胢*n個(gè)位數(shù)來(lái)構(gòu)成位示圖,可看成是二維數(shù)組(數(shù)據(jù)結(jié)構(gòu))。

盤(pán)塊的分配與回收

成組鏈接法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評(píng)論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,744評(píng)論 3 421
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,879評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,181評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,935評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,325評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,534評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,084評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,892評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,322評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,735評(píng)論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,990評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,800評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,084評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 1、文件和文件系統(tǒng) 文件管理:把所管理的程序和數(shù)據(jù)組織成一系列的文件,并能進(jìn)行合理的存儲(chǔ)、使用等操作。 1 )基本...
    盆栽木只閱讀 1,376評(píng)論 0 0
  • 一、概述 文件的邏輯結(jié)構(gòu) ( 順序文件,索引文件,索引順序文件,直接文件和哈希文件 ) 外存分配方式 文件目錄管理...
    傻傻傻瓜_d432閱讀 525評(píng)論 0 0
  • 以前王室對(duì)于老百姓來(lái)說(shuō)高高在上,不和平民有糾葛。為什么?王室權(quán)利來(lái)源的地方。 以前,王室存在基礎(chǔ)是貴族階層的認(rèn)可。...
    chentianlong閱讀 1,122評(píng)論 1 0
  • 鍛煉身體可以有效提升 你不需要一開(kāi)始就去長(zhǎng)跑,可以從一些簡(jiǎn)單的運(yùn)動(dòng)開(kāi)始,散步 10 分鐘或者做 10 個(gè)俯臥撐都可...
    幸運(yùn)21閱讀 267評(píng)論 0 0
  • 人人都喜歡贊美,喜歡被人夸。但是,如果你夸不到心里去,也會(huì)讓人不開(kāi)心的。 比如,見(jiàn)到一個(gè)比較胖的姑娘,你夸她身材好...
    小考拉俱樂(lè)部閱讀 435評(píng)論 0 0