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

news2024/11/14 8:21:05

目录

一、文件块,磁盘块

二、连续分配

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)总结

六、总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出排序算法之直接插入排序(拓展:折半插入排序)

目录 1. 图示解析 2. 原理解析 3. 代码实现 4. 性能分析 5. 折半插入排序(拓展) 直接插入排序和选择排序的第一趟就是第一个关键字 ! 1. 图示解析 2. 原理解析 整个区间被分为:① 有序区间;② 无序区间 每次选…

ES(elasticsearch) - 三种姿势进行分页查询

1. from size 浅分页 "浅"分页可以理解为简单意义上的分页。它的原理很简单,就是查询前20条数据,然后截断前10条,只返回10-20的数据。这样其实白白浪费了前10条的查询。 GET test_dev/_search {"query": {"bool&…

大模型训练框架

一文搞定分布式训练:dataparallel、distirbuted、deepspeed、accelerate、transformers、horovod - 知乎代码地址:taishan1994/pytorch-distributed-NLP: pytorch分布式训练 (github.com)pytorch-distributed-NLPpytorch单机多卡分布式训练-中文文本分类…

【HarmonyOS】元服务卡片展示动态数据,并定点更新卡片数据

【关键字】 元服务卡片、卡片展示动态数据、更新卡片数据 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现卡片中动态显示数据功能,并实现定时数据刷新。本篇文章通过实现定时刷新卡片中日期数据为例,讲述展示动态数据与更新数据功…

SLAM从入门到精通(基于ros的反光柱定位)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 我们看论文或者看书的时候,讲的最多的一般就是基于自然环境的定位。不管是激光雷达,还是视觉,其实本身还有很多…

公司电脑屏幕录制软件有什么功能

电脑屏幕录制软件有很多,今天简单说说说它的基础功能和附属功能: 基础功能: 1、屏幕录像 支持对所选电脑的屏幕进行录制,并且支持调整截屏频度、画面质量、单个视频时长等。 2、实时屏幕 可以对对方电脑进行实时屏幕查看&…

哥斯拉Godzilla使用中基于PHP的加密流量分析

转载于:https://blog.csdn.net/zlloveyouforever/article/details/129189396 哥斯拉Godzilla简介 据说是护网期间,各大厂商的waf不断在静态查杀、流量通信等方面对webshell进行拦截,众红队急需一款优秀的权限管理工具 , 虽说冰蝎3.0也不错 , …

MessagePassing分析与说明

1 Motivation 在图神经网络中,如何像在欧式空间一样进行卷积操作,其重要的问题在于如何更新当前位置的信息。 其每个位置(或者叫节点node)的更新方式如下所示。 这一个式子既可以表达GCN,也可以表达Edge Conv。 2 函…

wangeditor 富文本编辑器使用

使用环境vue3 ts &#xff0c;添加了字数限制 尝试了两种&#xff0c;使用方法类似&#xff08;参考文档&#xff09;&#xff0c;工具栏图标有不同&#xff0c;最后选用了第一种。 一、wangeditor 安装 npm i wangeditor --save 使用 这里封装了个简单组件 <templat…

浅谈AcrelEMS-GYM文体建筑能效管理解决方案-安科瑞 蒋静

1 概述 AcrelEMS-CA 文体建筑能效管理聚焦建筑的能量和信息的流向搭建平台解决方案。该系统解决方案集变电站综合自动化、电力监控、电能质量分析及治理、电气安全、能耗分析、照明控制、设备运维于一体。打破子系统孤立&#xff0c;配置方便&#xff0c;运维便捷&#xff1b;…

vue3.0运行npm run dev 报错Cannot find module node:url

vue3.0运行npm run dev 报错Cannot find module 问题背景 近期用vue3.0写项目&#xff0c;npm init vuelatest —> npm install 都正常,npm run dev的时候报错如下&#xff1a; failed to load config from F:\code\testVue\vue-demo\vite.config.js error when starting…

golang搭建http服务

golang环境搭建好之后,搭建htto服务 1.创建目录 创建main文件 创建成功,里面改成package main 终端执行操作创建好go.mod go mod init golang package golangimport ("fmt""net/http" )func sayHello(w http.ResponseWriter, r *http.Request) {_, _ fm…

TP4057替代DP4057 500mA线性锂离子电池充电器芯片

描述 DP4057是一款完整的单节锂离子电池带电池正负极反接保护采用恒定电流/恒定电压线性充电器。其SOT封装与较少的外部元件数目使得DP4057成为便携式应用的理想选择。DP4057 可以适合USB电源和适配器电源工作。 由于采用了内部PMOSFET架构&#xff0c;加.上防倒充电路&#xf…

基于机器视觉的12306验证码识别 计算机竞赛

文章目录 0 简介1 数据收集2 识别过程3 网络构建4 数据读取5 模型训练6 加入Dropout层7 数据增强8 迁移学习9 结果9 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器视觉的12306验证码识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向…

ES6之Set集合(通俗易懂,含实践)

Set是什么&#xff1f;它的方法有哪些&#xff1f;它在实例开发中有什么作用&#xff1f; 让我为大家介绍一下吧&#xff01; ES6提供了新的数据结构 Set(集合) 。它类似于数组&#xff0c;但成员的值是唯一的。 创建方法&#xff1a; let s new Set()console.log(s)它属于什…

使用时间潜在瓶颈网络进行图像分类

介绍 简单的循环神经网络(RNN)对学习 时间压缩表示表现出强烈的归纳偏差。方程 1显示了递推公式,其中h_t是整个输入序列 的压缩表示(单个向量)x。 方程 1:递推方程。(来源:Aritra 和 Suvaditya)另一方面,Transformers(Vaswani 等人)对于学习时间压缩表示几乎没有归…

探索随机森林: 机器学习中的集成学习神器

机器学习 第七课 随机森林 概述机器学习机器学习的主要分类监督学习无监督学习强化学习 集成学习提高准确性增强稳定性提升泛化能力 集成学习的主要方法BaggingBoostingStacking 随机森林的理论基础决策树的基本原理随机森林的生成过程随机森林的优势与局限性 随机森林的实际应…

IDEA 构建web项目-详细教程

1、创建一个新项目 1、点击File,选择New,然后点击Project 2、选择Empty Project,然后点击Next 3、新建一个项目 4、在新建完项目后&#xff0c;点击Finish后会弹出Open Project这个窗口&#xff0c;建议选择New Window 5、在Project Structure中选择Project Settings --> M…

rosbag记录与回放数据以及通过GMapping算法创建地图与导航

1、引言 通过前面几章的介绍&#xff0c;明白了ROS的工作原理&#xff0c;并且我们也能遥控机器人了&#xff0c;那机器人如何在实际环境中自主导航呢&#xff1f;要做到这点&#xff0c;机器人必须知道它自己在哪以及需要到哪儿去。 意味着&#xff0c;机器人需要有一个周围环…

3分钟教你用Python+Appium实现自动化测试

一、环境准备 1.脚本语言&#xff1a;Python3.x IDE&#xff1a;安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境&#xff0c;path添加E:\Software\Android_SDK\platform-tools 4.安装Appium for windows&#xff0c;官网地址 Redirecting 点击下载按钮会到GitHub…