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