第四章 文件管理 四、文件的物理结构(文件分配方式)

目录

一、文件块,磁盘块

二、连续分配

1、定义:

2、计算方式:

3、注意:

4、优点:

5、缺点:

6、总结

三、链接分配----隐式链接

1、定义:

2、如何实现逻辑块号转物理块号

3、优点:

4、总结

四、链接分配----显式链接

1、定义:

2、如何实现逻辑块号转物理块号

3、优点:

4、总结:

五、索引分配

1、定义:

2、例子:

3、注意

4、优点:

5、缺点:

6、一个磁盘块不够装怎么办?

(1)链接方案

1.定义:

2.缺点:

(2)多层索引

1.定义:

2.文件最大长度:

3、如何实现逻辑块号转物理块号

4、注意:

(3)混合索引

1.定义:

2.优点:

(4)总结

六、总结


一、文件块,磁盘块

1、类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”。很多操作系统中,磁盘块的大小与内存块、页面的大小相同.

2、优点:方便内存的交换。

3、同样的,在外存管理中,为了方便对文件数据的管理,文件的逻辑地址空间也被分为了一个一个的文件“块”

二、连续分配

1、定义:

连续分配方式要求每个文件在磁盘上占有一组连续的块

2、计算方式:

物理块号=起始块号+逻辑块号

3、注意:

(1)逻辑块号 ≥ 长度 ,就不合法.

4、优点:

(1)可以直接算出逻辑块号对应的物理块号,因此连续分配支持顺序访问和直接访问(即随机访问)

(2)因为读取某个磁盘块时,需要移动磁头。访问的两个磁盘块相隔越远,移动磁头所需时间就越长,所以,连续分配的文件在顺序读/写时速度最快.

5、缺点:

(1)当黄色区域想要扩展的时候,发现后面的磁盘块已经被占用了,所以就必须整体将黄色块迁移到绿色块才能拓展,因为只有绿色块才有连续的4个块。连续分配的文件不方便拓展

(2)当有文件想要存储进绿色块时,却发现没有连续的块,所以无法存储,造成了空间的浪费。

结论:物理上采用连续分配,存储空间利用率低,会产生难以利用的磁盘碎片可以用紧凑来处理碎片,但是需要耗费很大的时间代价。

6、总结

三、链接分配----隐式链接

1、定义:

2、如何实现逻辑块号转物理块号

(1)类似于链表,每个物理块号只知道它的前驱和后继,若要访问第i个物理块号,只有先把前面i-1个都访问了才行.

结论:

采用链式分配(隐式链接)方式的文件,只支持顺序访问,不支持随机访问,查找效率低。另外,指向下一个盘块的指针也需要耗费少量的存储空间。

3、优点:

(1)方便拓展

结论:

采用隐式链接的链接分配方式,很方便文件拓展。另外,所有的空闲磁盘块都可以被利用,不会有碎片问题,外存利用率高。

4、总结

四、链接分配----显式链接

1、定义:

注意:物理块号可以是隐含的。

2、如何实现逻辑块号转物理块号

(1)一个用户要找aaa的2号逻辑块。

(2)我们首先在FCB中找到aaa的起始块号为2

(3)根据FAT表可知,

物理块号2,是aaa的0号块;

物理块号5,是aaa的1号块;

物理块号0,是aaa的2号块;

(4)所以,aaa的2号块为存放在物理块号为0的磁盘块中。

3、优点:

(1)采用链式分配(显式链接)方式的文件,支持顺序访问,也支持随机访问(想访问i号逻辑块时,并不需要依次访问之前的0~ i-1号逻辑块),由于块号转换的过程不需要访问磁盘,因此相比于隐式链接来说,访问速度快很多。

(2)显式链接也不会产生外部碎片,也可以很方便地对文件进行拓展。

4、总结:

五、索引分配

1、定义:

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表――建立逻辑页面到物理页之间的映射关系)。

索引表存放的磁盘块称为索引块文件数据存放的磁盘块称为数据块

2、例子:

假设我们有一个文件“aaa”,它的数据依次存放在2,5,13,9四个物理块内。

而7号物理块作为它的索引块,里面存的是索引表。

(1)若我们要找aaa的0号逻辑块,首先就得根据FCB目录中的索引块找到索引表

(2)7号块中存的就是这个索引表

(3)根据逻辑块号0,找到物理块号2中的数据。

3、注意

4、优点:

(1)索引分配方式可以支持随机访问。文件拓展也很容易实现(只需要给文件分配一个空闲块,并增加一个索引表项即可)

5、缺点:

(1)索引表要占据一定的存储空间。

6、一个磁盘块不够装怎么办?

(1)链接方案
1.定义:

如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放。

2.缺点:

(2)多层索引
1.定义:

使第一层索引块指向第二层的索引块。还可根据文件大小的要求再建立第三层、第四层索引块。

2.文件最大长度:

3、如何实现逻辑块号转物理块号

4、注意:

 采用K层索引结构,且顶级索引表未调入内存,则访问一个数据块只需要K+1次读磁盘操作

(3)混合索引
1.定义:

多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一级间接索引(指向单层索引表)、还包含两级间接索引(指向两层索引表)。

  • 若顶级索引表还没读入内存
  • 访问0~7号逻辑块:两次读磁盘
  • 访问8~263:三次读磁盘
  • 访问264~65799:四次读磁盘
2.优点:

对于小文件,只需较少的读磁盘次数就可以访问目标数据块。(一般计算机中小文件更多)

(4)总结

六、总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/103291.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

J2EE的N层体系结构

J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。 RMI/IIOP:RMI(Remote Method Invocation,远程方法调用)是Java的…

AUTOSAR AP 硬核知识点梳理(2)— 架构详解

一 AUTOSAR 平台逻辑体系结构 图示逻辑体系结构描述了平台是如何组成的,有哪些模块,模块之间的接口是如何工作的。 经典平台具有分层的软件体系结构。定义明确的抽象层,每个抽象层都有精确定义的角色和接口。 对于应用程序,我们需要考虑使用的软件组件,希望它们是可重用的…

Windows Server扩展卷变灰怎么办?

当Windows Server中的某一个分区,特别是系统(C)分区磁盘空间不足时,您可能需要使用内置磁盘管理工具的“扩展卷”功能扩展分区了。但不幸的是,当您尝试扩展C盘驱动器时,很有可能会出现Windows Server扩展卷…

SystemVerilog Assertions应用指南 Chapter1.38在序列匹配时调用子程序

SVA可以在序列每次成功匹配时调用子程序。同一序列中定义的局部变量可以作为参数传给这些子程序。对于序列的每次匹配,子程序调用的执行与它们在序列定义中的顺序相同。 module sub;logic a, b, clk;initial $vcdpluson();initial begin clk 1b0; a1b0; b1b0; repeat(2) (pos…

python实验16_网络爬虫

实验16:网络爬虫 1.实验目标及要求 (1)掌握简单爬虫方法。 2. 实验主要内容 爬取中国票房网 ① 爬取中国票房网(www.cbooo.cn)2019年票房排行榜前20名的电影相关数据 代码部分: import time from selenium.webdriver impor…

3,4,6,9,?,18

3,4,6,9,?,18 逐步变大的递增数组 分析一: 3 6 -1 4 x 2 4 9 -1 6 x 2 6 ? -1 9 x 2 ? 13 9 18 -1 ? x 2 ? 13 分析二: 4 - 3 1 6 - 4 2 9 - 6 3 ?- 9 4 …

华为OD技术面试-最短距离矩阵(动态规划、广度优先)

背景 记录2023-10-21 晚华为OD三面的手撕代码题,当时没做出来,给面试官说了我的想法,评价:解法复杂了,只是简单的动态规范 或 广度优先算法,事后找资料记录实现方式。 题目 腐烂的橘子 问题描述&#xff…

【计算机网络】UDP的报文结构和注意事项

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,它在传输层中提供了简单、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)不同,UDP不需要建立连接&…

如何理解Go言中的Context?

目前看过除了《go语言程序设计》以外最好的教程:https://www.practical-go-lessons.com 原文:https://www.practical-go-lessons.com/chap-37-context 你将在本章中学到什么? 1.什么是上下文? 2.什么是链表? 3.如何…

基于卷积优化优化的BP神经网络(分类应用) - 附代码

基于卷积优化优化的BP神经网络(分类应用) - 附代码 文章目录 基于卷积优化优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.卷积优化优化BP神经网络3.1 BP神经网络参数设置3.2 卷积优化算法应用 4.测试结果…

VMware虚拟机中ubuntu网络连接不上

VMware虚拟机中ubuntu中网络连接不上 解决方案其他虚拟机网络 解决方案 1.选择VMware中编辑-虚拟网络编辑器-更改: 设置为你喜欢的模式,这里为NET模式 2.选中ubuntu虚拟机(关机后的虚拟机),点击:编辑虚拟机…

大疆 dji mini4pro 不同充电器头 充电速度

协议 dp100w 头线 充电功率33.2w 指示灯快闪 一加手机官方充电头线(协议:wrap65w闪充) 12.1w 指示灯慢闪 官方 DJI Mini 4 Pro - 技术参数 - DJI 大疆创新 总结 买pd快充协议的头线即可。

手写SDK的秘诀

目录 什么是SDK?使用SDK的好处?手写SDK经验总结易用性如何提高易用性?1、统一调用2、集中配置3、良好的命名 可理解性1、结构清晰2、统一风格3、编写注释4、说明文档 可扩展性轻量依赖自定义实现 高效稳定 写在最后 什么是SDK? SDK(Softwa…

不开源项目aspose.cells最新版23.10的一些科普

1.基本介绍 日常工作中我们常常会使用到Excel来做一些事情,也常常需要使用代码程序来解析Excel文件,目前来说对于poi、easypoi、easyexcel、jxls的使用已经非常多了,它们都在一些特定情况下很好的去处理Excel文件,但有些时候我们…

Python Opencv实践 - 车辆统计(2)检测线绘制,车辆数量计数和显示

针对我所使用的视频,对上一节的代码进行了修改,增加了更多参数。 Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理_亦枫Leonlew的博客-CSDN博客示例中的图像的腐蚀、膨胀和闭运算等需要根据具…

提升用户体验的利器:揭秘Spring框架中国际化的奇妙魔力

国际化 简单来说,国际化就是让应用(app、web)适应不同的语言和地区的需要,比如根据地区选择页面展示语言。 i18ninternationalization,首末字符i和n,18为中间的字符数 原理 基于传入语言or地区标识进行判…

BC v1.2充电规范

1 JEITA Reference to https://www.mianbaoban.cn/blog/post/169964 符合 JEITA 规范的锂离子电池充电器解决方案 2 Battery Fuel Gauge 2.1 Cycle Count(充放电循环次数) 此指令回传一只读字段,代表电芯组已经历的完整充放电循环数。当放电容…

CSS常见选择器总结

1.简单选择器 简单选择器是开发中使用最多的选择器,包含: 元素选择器,使用元素的名称 类选择器,使用.类名 id选择器,使用#id id注意事项: 一个HTML文档里面的id值 是唯一的,不能重复 id值如…

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖”

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖” 2023年9月19日,2023年第23届中国国际工业博览会CIIF(以下简称“工博会”)在上海国家会展中心盛大开幕。震坤行紧跟智能制造产业发展步伐,携数字化解决…

STM32 invalid UTF-8 in comment 警告解决办法

这里写自定义目录标题 STM32 invalid UTF-8 in comment 警告解决办法问题描述解决办法 STM32 invalid UTF-8 in comment 警告解决办法 问题描述 …/…/libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x\stm32f10x.h(18): warning: invalid UTF-8 in comment [-Winvalid-utf8]…