【软考学习15】索引文件结构、直接索引和间接索引

简介: 【软考学习15】索引文件结构、直接索引和间接索引


本文将学习操作系统中的索引文件结构,我们将对直接索引一级间接索引二级间接索引有个基本的理解。


一、索引文件结构概论

索引文件结构的扩展机制能够极大扩充现有容量,是操作系统中比较特殊的文件结构。

一般的索引文件结构由 13 个结点组成,其中 0 - 9 个结点为直接的物理盘块(直接索引),第 10 个结点是一级间接索引,第 11 个结点是二级间接索引,第 12 个结点是三级间接索引,如下图所示。

13 个索引结点编号从 0 开始,一直编号到 12,如上图所示,这个需要注意。


二、索引的扩展原理

如果一个存储结构不使用索引,那么他的存量就是 物理块数 * 单位大小

如果每个物理块的单位大小为 4K,则总空间为 52K,如下图所示。

如果引入了一级间接索引,索引指向了具体的物理块号,如下图所示。

如果一个地址占用 4 个字节一个物理盘块有 4KB 容量,那么在第 10 个物理块中就可以存放 1024 份地址,那么 10 号物理块就可以存储 1024 份容量,就是 1024 X 4KB = 4MB 的容量。


如果引入了二级间接索引,索引指向了中间索引,中间索引在指向具体的物理块号,如下图所示。

如果一个地址占用 4 个字节一个物理盘块有 4KB 容量,那么在第 11 个物理块中就可以存放 1024 份地址,每份子地址可以再存储 1024 份二级地址,那么 11 号物理块就可以存储 1024 * 1024 份容量,就是 1024 X 1024 X 4KB = 4GB 的容量。


三、索引例题

索引的例题如下:

现有一个文件系统采用索引结点管理模式,物理块大小为 1KB。

每个索引结点有 32KB 的存储空间,每个地址项占 4 字节,磁盘索引块和磁盘数据块大小均为 1KB。

其中 0 - 4 用直接地址索引,5 - 6 用一级间接地址索引,7 用二级间接地址索引,逻辑块号为 5 和 261 的物理块号在哪里

逻辑块号从 0 开始编码,物理块号从 1 开始编码,所以逻辑块号 5 就代表第六块

每个地址项占 4 字节,磁盘索引块大小均为 1KB,所以一个物理块可以存放 256 份地址。

第 5 个逻辑块号的物理块号位置如下所示。

第 261 个逻辑块号的物理块号位置如下所示。


四、总结

本文学习了操作系统中的索引文件结构,我们需要对直接索引一级间接索引二级间接索引有个基本的理解。


相关文章
|
数据库 数据库管理
【软件设计师-从小白到大牛】下午题基础篇:第二章 数据库设计
ER模型:是实体联系模型,跟DBMS无关,也就是跟具体的数据库管理系统没有关系。 概念结构设计:完成ER模型的建模工作。
503 1
|
定位技术
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
2789 0
Threejs实现绘制地球,地理位置标注、经纬度转换世界坐标threejs坐标
|
4月前
|
安全 数据建模 测试技术
阿里云SSL证书免费版与付费版差异解析,以及免费SSL证书申请流程
阿里云提供免费与付费SSL证书,满足不同场景HTTPS数据加密需求。免费证书适用于个人站点、测试环境,而政府机构、电商平台等建议选用OV/EV付费证书,以获得更高安全保障。阿里云SSL证书支持单域名、通配符等类型,并定期推出促销活动,新用户可享6折优惠起,还有免费试用和HTTPS加速网关等增值服务。企业可根据需求科学选配,构建安全可信的在线业务环境。
|
11月前
|
测试技术 数据库 uml
软考中级软件设计师专项-UML图篇
UML(统一建模语言)是一种用于软件系统建模的标准化语言,能够清晰表达系统的静态结构与动态行为。其核心包括三类构造块:事物、关系和图。事物分为结构事物、行为事物、分组事物和注释事物;关系包括依赖、关联、泛化和实现;图则涵盖了类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图和部署图等,分别用于静态建模、动态建模和物理建模。
1062 1
软考中级软件设计师专项-UML图篇
计算机组成原理(9)----硬布线控制器
计算机组成原理(9)----硬布线控制器
930 1
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
662 49
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
4241 6
|
存储 前端开发 数据库
前端项目一键换肤vue+element(ColorPicker)
本文介绍了如何在前端项目中实现一键换肤功能,通过使用CSS变量和Element UI的颜色选择器组件(ColorPicker),并结合Vuex进行状态管理和持久化,实现主题颜色的动态切换。
621 3
前端项目一键换肤vue+element(ColorPicker)
|
移动开发 关系型数据库 MySQL
MySQL中的ROW_NUMBER窗口函数简单了解下
ROW_NUMBER是 MySQL8引入的窗口函数之一,它为查询结果集中的每一行分配一个唯一的顺序号(行号)。ROW_NUMBER在分页、去重、分组内排序等场景中非常有用。
1390 4