操作系统之文件管理:5、文件物理结构(连续分配、链式(显式、隐式)分配、索引分配(链接、多层索引、混合索引))
3、文件物理結(jié)構(gòu)
- 思維導(dǎo)圖
- 文件塊、磁盤塊
- 文件分配方式
- 1、連續(xù)分配
- 2、鏈接分配
- 隱式鏈接
- 顯式鏈接
- 3、索引分配
- 如果一個(gè)文件的大小超過(guò)一個(gè)磁盤塊怎么辦?
- 1、鏈接方案
- 2、多層索引
- 3、混合索引
- 總結(jié)
- 注:邏輯結(jié)構(gòu)VS物理結(jié)構(gòu)
- 什么是邏輯結(jié)構(gòu),什么是物理結(jié)構(gòu)?
- 順序文件采用順序存儲(chǔ)/鏈?zhǔn)酱鎯?chǔ)
- 索引文件采用索引分配
思維導(dǎo)圖
文件塊、磁盤塊
其實(shí)和程序與內(nèi)存的分塊類似
文件分配方式
1、連續(xù)分配
1、邏輯分配方式:最大的特點(diǎn)就是物理存儲(chǔ)上連續(xù)
2、由于是連續(xù)存儲(chǔ),所以進(jìn)行地址映射時(shí),只需要塊號(hào)的映射關(guān)系,而塊內(nèi)地址不需要進(jìn)行映射
3、用戶要訪問(wèn)一個(gè)位置:首先要找到目錄文件中與之對(duì)應(yīng)的文件目錄項(xiàng)中的起始?jí)K號(hào),然后物理塊號(hào)=起始?jí)K號(hào)+邏輯塊號(hào),最后通過(guò)快內(nèi)地址找到所要訪問(wèn)的位置。
連續(xù)分配優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
1、
缺點(diǎn):
1、
2、
2、鏈接分配
隱式鏈接
該種方式不支持隨機(jī)讀取,效率低
該種方式由于是鏈?zhǔn)酱鎯?chǔ),所以方便拓展,只需要將FCB中的結(jié)束塊號(hào)修改即可
總結(jié)
顯式鏈接
區(qū)別與隱式鏈接,顯式鏈接多加了一塊文件分配表(FAT),用于記錄塊與塊之間的關(guān)系
邏輯地址與物理地址的轉(zhuǎn)化:
1、用戶給出邏輯塊號(hào),操作系統(tǒng)從文件目錄表找到對(duì)應(yīng)FCB
2、從FCB中找到起始地址塊號(hào)算出物理塊號(hào),然后查找FAT
3、直接找到物理塊(隨機(jī)存取)
由于FAT常駐內(nèi)存,所以邏輯地址到物理地址的轉(zhuǎn)化不需要進(jìn)行I/O讀寫(xiě)。
總結(jié)
3、索引分配
1、在索引分配方式中,文件目錄表中的FCB需要新加一個(gè)索引塊的字段:用于存放該文件索引表存放的位置
2、在顯式鏈接的鏈?zhǔn)椒峙浞绞街?#xff0c;文件分配表FAT 是一個(gè)磁盤對(duì)應(yīng)一張。而索引分配方式中,索引表是一個(gè)文件對(duì)應(yīng)一張。
3、文件的邏輯塊號(hào)到物理塊號(hào)的轉(zhuǎn)換:首先,用戶給出要訪問(wèn)的邏輯塊號(hào) i,操作系統(tǒng)找到該文件對(duì)應(yīng)的目錄項(xiàng)(FCB);其次,從目錄項(xiàng)中可知索引表存放位置,將索引表從外存讀入內(nèi)存,并查找索引表即可只 i 號(hào)邏輯塊在外存中的存放位置。因此,索引分配方式可以支持隨機(jī)訪問(wèn)。文件拓展也很容易實(shí)現(xiàn)(只需要給文件分配一個(gè)空閑塊,并增加一個(gè)索引表項(xiàng)即可)但是索引表需要占用一定的存儲(chǔ)空間
4、問(wèn)題:若每個(gè)磁盤塊1KB,一個(gè)索引表項(xiàng)4B,則一個(gè)磁盤塊只能存放 256 個(gè)索引項(xiàng)。如果一個(gè)文件的大小超過(guò)了256塊,那么一個(gè)磁盤塊是裝不下文件的整張索引表的,如何解決這個(gè)問(wèn)題?
如果一個(gè)文件的大小超過(guò)一個(gè)磁盤塊怎么辦?
1、鏈接方案
1、解決方法:用多個(gè)索引塊鏈接存儲(chǔ),FCB中存儲(chǔ)第一個(gè)索引塊的位置即可
2、問(wèn)題:當(dāng)有很多索引塊時(shí),必須先將前面所有的索引塊讀入內(nèi)存才可以找到你要的索引塊,因此,其效率很低。從而產(chǎn)生了多級(jí)索引。
2、多層索引
問(wèn)題:當(dāng)你只有很小的數(shù)據(jù)時(shí),假如只有1KB,本來(lái)可以只讀入索引表就可以查詢到該文件位置,但是采用二級(jí)索引表卻要讀入一級(jí)索引表和二級(jí)索引表,得不償失,為解決該問(wèn)題,引入混合索引
3、混合索引
就是將索引表和多級(jí)索引表混合使用,當(dāng)數(shù)據(jù)很小時(shí),就可以用直接索引,當(dāng)數(shù)據(jù)很大時(shí),就可以使用多級(jí)索引。
總結(jié)
注:邏輯結(jié)構(gòu)VS物理結(jié)構(gòu)
什么是邏輯結(jié)構(gòu),什么是物理結(jié)構(gòu)?
物理結(jié)構(gòu):本質(zhì)上來(lái)看是當(dāng)我們?cè)谶M(jìn)行數(shù)據(jù)的存儲(chǔ)時(shí),操作系統(tǒng)會(huì)將數(shù)據(jù)保存到硬盤中,但是他會(huì)以什么樣的方式存儲(chǔ)就是所謂的物理結(jié)構(gòu),例如操作系統(tǒng)可能會(huì)以順序或者鏈?zhǔn)降姆绞酱鎯?chǔ)數(shù)據(jù)。對(duì)于用戶而言,操作系統(tǒng)對(duì)數(shù)據(jù)的存儲(chǔ)是不可見(jiàn)的。用戶并不關(guān)心。
邏輯結(jié)構(gòu):本質(zhì)上來(lái)看是用戶在編寫(xiě)程序時(shí),用何種方式來(lái)組織數(shù)據(jù),文件的邏輯結(jié)構(gòu)是用戶來(lái)定義的,只是表示一個(gè)數(shù)據(jù)和一個(gè)數(shù)據(jù)的前后邏輯關(guān)系是什么樣的。操作系統(tǒng)并不關(guān)心。
順序文件采用順序存儲(chǔ)/鏈?zhǔn)酱鎯?chǔ)
藍(lán)色的部分:就是用戶對(duì)于文件采用的邏輯結(jié)構(gòu)的定義
橙色的部分:在操作系統(tǒng)看來(lái),整個(gè)文件就是一堆二進(jìn)制代碼,操作系統(tǒng)按照物理塊大小將這堆二進(jìn)制文件拆分后;采用順序的方式存儲(chǔ)到硬盤上就是物理結(jié)構(gòu)的順序存儲(chǔ)。采用鏈?zhǔn)降姆绞酱鎯?chǔ)到硬盤上就是物理結(jié)構(gòu)的鏈?zhǔn)酱鎯?chǔ)
索引文件采用索引分配
總結(jié)
以上是生活随笔為你收集整理的操作系统之文件管理:5、文件物理结构(连续分配、链式(显式、隐式)分配、索引分配(链接、多层索引、混合索引))的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坚持使用GNU/Linux
- 下一篇: 操作系统之文件管理:1、初识文件管理