软考--操作系统之文件系统多级索引

简介: 软考--操作系统之文件系统多级索引

概念

索引结构

一个文件的信息存放在若干不连续物理块中

系统为每个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中

索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块

索引块的块号放在FCB(文件控制块)里,通过查找到FCB就可以得到索引表,然后就可以知道文件的每一块放在什么地方了


49dd18704a61463ba6f19ba99f62c1a7.png

索引表

e92f0efd66f84d749e1f7f7a10672774.png

检索过程,分两步,首先查找索引表,如果存在该记录,则根据索引项的指示读取外存。

如果索引表很大,可以再为索引表建立查找表。如下图:


f20e7cc38a98418cb6e45ce5b1fe80df.png

索引方式

文件系统使用索引来标识文件和目录,帮助快速定位。

传统的索引方式是一级索引,即文件和目录直接对应一个索引值。

多级索引则采用层次索引方式:

第一级索引:划分一大块空间,每个空间对应一个第一级索引。

第二级索引:在第一级索引对应空间内再划分,对应第二级索引。

第三级索引…依次类推,可以设置多个等级。


一级索引

203ac7f5f3004241aadeafe3e3fba983.png


多级索引

702f4400da3c47b08ba978e3c94b5a87.png

多级索引为文件系统带来的优势:


1.索引利用率高:通过分层组织,空余的索引可供其他文件和目录使用。

2.查找效率高:高级索引将搜索范围缩小到较小空间,降低比较次数。

3.扩展性好:可以动态添加高级索引,满足空间不断增加的需要。

今天主要讨论多级索引,以软考真题为例


真题分析

题目1-存储文件最大长度

c796235b37154922af96b6ef45af13be.png


解析

磁盘块大小为1K,每个块号占3B,那么一个物理块可放:1024/3=341个地址项,即:

一个一级索引可存放的文件大小为:3411

一个二级索引可存放文件的大小为:341×3411=116281

一个三级索引可存放文件的大小为:341×341×341*1=39651821


多级索引公式

866d7f640e23468d9c1453a728aa4995.png

上题中物理块是1K,就是1024B,最后求的单位也是多少K,所以不涉及单位的转换。


题目2-多级索引占用物理块号


405adb276823406c91c99e7704d50e98.png

解析

此题属于混合索引形式,索引表中既有直接索引,又有多级索引。每一个地址项指的是索引表中一行。


解题思路如下图所示

1、0-4这5个地址项存储为直接地址索引,存储在物理块0-4块上,一个地址项对应一个物理块

2、5,6地址项为一级间接地址项,磁盘索引块和磁盘数据块分别为1K,也就是1024B,每个地址项4B,一个磁盘数据块可以存储1024/4=256个地址,此时,接上面的物理块号5开始,256个地址对应的物理块号为5-260块,同理,下一个物理块号是261-516

3、再来看看剩下的一个二级间接地址:1024/4=256个地址项,每一个又分别对应256个物理块,接相面的516块,从517开始-772块,是上面256个地址项中的第一个地址项对应的物理块号。依次往下,结束的时候是多少块号呢?256×256+516=66052

7921386c33d54d8ea7de906c590796b0.png

分析完之后,来看上题中的问题是不是一目了然了。


题目3-综合

某系统中磁盘的每个盘块大小为1KB,外存分配方法采用中的混合索引结构,其中索引节点中直接地址6项,一级索引地址2项,二级索引地址1项,每个盘块号占用4个字节,请问该系统中允许的文件最大长度是多少?

此题是上面两个题目的结合,综合上面的讲解,来看这道题


解析

一个盘块可记录的盘块号的数量为∶1KB/4=256

直接地址∶记录6个文件所占物理块的块号

一级索引∶记录256x2=512个文件所占物理块的块号

二级索引∶记录256x256个文件所占物理块的块号

该系统中允许的文件最大长度 (256x256+256x2+6)*1KB=自己算下吧


总结

理解多级索引的概念,每多一级,存储的数量是呈幂次变化,牢记多级索引公式,当然理解公式的含义远比死记硬背要牢靠很多。



相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
存储 算法 安全
操作系统之文件系统的奥秘
【9月更文挑战第19天】本文将深入探索操作系统中不可或缺的组件——文件系统,揭示其工作原理与实现细节。我们将通过浅显的语言和生动的比喻,一步步解析文件系统如何组织数据、管理存储空间,并确保数据的完整性和安全性。文章不仅适合初学者构建基础概念,也能帮助有经验的开发者更深入地理解文件系统的高级特性。
|
9天前
|
存储 安全 大数据
深入浅出操作系统:文件系统的秘密
【10月更文挑战第35天】本文将揭示文件系统背后的奥秘,从其基本概念到复杂的实现机制。我们将一起探索文件系统的结构和原理,并了解它如何影响我们的日常计算体验。通过简单的例子和比喻,文章旨在使读者对文件系统有一个清晰而深刻的理解,就像甘地所言:“你必须成为你希望在世界上看到的改变。”让我们一起成为理解操作系统的先行者。
|
5月前
|
存储 Linux 数据处理
探索Linux操作系统的内核与文件系统
本文深入探讨了Linux操作系统的核心组件,包括其独特的内核结构和灵活的文件系统。文章首先概述了Linux内核的主要功能和架构,接着详细分析了文件系统的工作原理以及它如何支持数据存储和检索。通过比较不同的文件系统类型,本文旨在为读者提供一个关于如何根据特定需求选择合适文件系统的参考框架。
|
6月前
|
存储 Unix Linux
手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......
手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......
118 1
|
2月前
|
存储 缓存 文件存储
探索操作系统中的文件系统管理
【9月更文挑战第25天】在数字世界的海洋中,操作系统是指引我们航行的灯塔。它不仅管理着硬件资源,还维护着软件的秩序。本文将深入探讨操作系统中一个至关重要的部分——文件系统管理。我们将从基础概念出发,逐步深入到文件系统的设计与实现,最后通过代码示例来直观展示文件系统的操作。让我们一起揭开文件系统管理的神秘面纱,理解其背后的逻辑与奥秘。
|
3月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
45 12
|
3月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
54 6
|
3月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。
|
3月前
|
存储 算法 Unix
OS—文件系统
OS—文件系统
52 0
|
6月前
|
数据安全/隐私保护 索引 Windows
操作系统基础:文件系统基础【下】
操作系统基础:文件系统基础【下】

热门文章

最新文章