[架构之路-185]-《软考-系统分析师》-3-操作系统基本原理 - 文件索引表

news2024/12/24 2:23:55

目录

一、文件的索引块。

二、索引分配表

三、索引表的链接方案

四、多层索引

五、混合索引分配


一、文件的索引块。

存放在目录中的文件,并非是文件的真实内容。

目录中记录了文件的索引块几号磁盘块

文件对应的索引表是存放在指定的磁盘块中的!!!

在这里插入图片描述

二、索引分配表

文件数据存放的磁盘块称为数据块。

索引分配表允许文件连续的逻辑数据块,以离散方式分配在不同磁盘块中。

系统会为每个文件建立一张索引表,表中记录了文件的各个逻辑块对应的物理块。

索引表也存放硬盘中,存放的磁盘块称为索引块。

在这里插入图片描述

索引表是存放在物理块中的,因此单个的索引表的大小是有空间的限制的!!!

假设物理磁盘块的大小1KB, 一个索引表象占4字节,即可以访问(2^32)个物理块。

一个磁盘块只能存放256个索引表项;

一个磁盘块(256索引表项)支持的最大文件大小为:256 * 1K = 256K大小。

三、索引表的链接方案

如果文件的内容太大,所需要的索引表就很大,需要多个磁盘块存放多个文件索引表!!!

如果索引表太大,硬盘的一个物理索引块装不下所有的索引表的内容,那么可以将多个索引块链接起来存放;

在这里插入图片描述

假设有多个索引块,而各个索引块是通过这种链接的方式连起来,所以,为了找到第二个索引块的块号,操作系统需要先将第一个索引块读入内存,然后才能根据这个索引块中的存放的下一个索引块指针找到第二个索引块号,并且把第二个索引块读入内存; 

假设文件的大小是64MB,物理块的大小为1K. 则需要64M/1K = 64K个索引项。

则需要64K/256 = 256个索引表!每个索引表占1K的大小。

四、多层索引

若采用多层索引结构,即索引表中存放的并非文件的数据,而是另一个索引表。

如下图所示:

在这里插入图片描述

二级索引表的索引项代表1K的文件。

二级索引表,有256项,代表256K文件大小。

一级索引表的一个表项代表一个二级索引表,即代表256K文件大小。

一级索引表一共有256个表项,因此最大代表256 * 256K = 64M文件大小。

五、混合索引分配

混合索引分配的方式就是将上述两种方式结合起来,
顶级索引表中有直接地址直接指向数据块的,也有一级间接地址指向下一级索引表(下下层就是数据块了,及一级间接地址可以看做是二级索引表(因为顶级索引表本身可以看做是一层));

在这里插入图片描述

 每个物理块:1K大小。

直接地址索引:8 个块

一级索引:256 个块。

二级索引:256 * 256 = 

上表支持的文件块个数 N = 8 + 256 + 256 * 256 = 8 + 256 + 64K 

上表支持的文件大小 = N * 1K'

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

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

相关文章

CSI指纹预处理(中值、均值、Hampel、小波滤波)

目录 1、前言 2、中值滤波器 3、均值滤波器 4、Hampel滤波器 5、小波变换滤波器 1、前言 因为设备、温度和实验室物品摆设等因素的影响,未经处理的CSI数据不能直接使用,需要对数据进行异常值处理以保证数据的稳定性,同时减少环境中人的…

云原生Istio架构和组件介绍

目录 1 Istio 架构2 Istio组件介绍2.1 Pilot2.2 Mixer2.3 Citadel2.4 Galley2.5 Sidecar-injector2.6 Proxy(Envoy)2.7 Ingressgateway2.8 其他组件 1 Istio 架构 Istio的架构,分为控制平面和数据面平两部分。 - 数据平面:由一组智能代理([En…

Eclipse改SSH项目,修改java代码无效

遇到了一个大坑,记录一下… 坑1:修改后台代码总是没用… 1.背景: Eclipse运行SSH项目(StrutsSpringHibernate),修改SQL语句,但是前端查询的结果没变化…(例如,在sql里加上 where …

LeetCode279之完全平方数(相关话题:动态规划,四平方和定理)

题目描述 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示例 1: 输入:n = 12 输出:3 解释:12 = 4 + 4 +…

【Android构建篇】MakeFile语法

前言 对于一个看不懂Makefile构建文件规则的人来说,这个Makefile语法和shell语法是真不一样,但是又引用了部分shell语法,可以说是shell语法的子类,Makefile语法继承了它。 和shell语法不一样,这个更难一点&#xff0…

Vue3基本知识点

为什么要学vue3 1、Vue是国内 最火的前端框架 2、Vue3是2020年09月18日正式发布的 目前以支持Vue3的UI组件库 库名称简介ant-design-vuePC 端组件库:Ant Design 的 Vue 实现,开发和服务于企业级后台产品arco-design-vuePC 端组件库:字节跳…

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks数据库

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks 一、认识DataX二、DataX3概览三、DataX3框架设计四、DataX3插件体系五、DataX3核心架构六、DataX 3六大核心优势1.可靠的数据质量监控2.丰富的数据转换功能3.精准的速度控制4.强劲的同步性能5.健…

【AI面试】目标检测中one-stage、two-stage算法的内容和优缺点对比汇总

在深度学习领域中,图像分类,目标检测和目标分割是三个相对来说较为基础的任务了。再加上图像生成(GAN,VAE,扩散模型),keypoints关键点检测等等,基本上涵盖了图像领域大部分场景了。 …

【解决办法】adobe photoshop :Assertion failed!

问题 PS启动时出现如下图错误(实际行数可能不一样,program和file一样): ASSERTION FAILED Program…\node-vulcanjs\build\Release\VulcanMessagerLib.node File: C:\bid\workspace\CCX-Process\release…\vulcanadapter.cc Lin…

深度学习实战27-Pytorch框架+BERT实现中文文本的关系抽取

大家好,我是微学AI,今天给大家介绍一下深度学习实战27-Pytorch框架+BERT实现中文文本的关系抽取,关系抽取任务是一项重要的任务,其核心是从一段自然语言文本中抽取实体之间具有的关系。随着深度学习的发展,很多预训练模型在关系抽取任务上取得了显著的成果,其中BERT模型是…

Matlab实现多个窗口间的数据传递(不用GUIDE)

在用多个matlab的figure进行数据交互时,数据传入是较为简单的,可以直接用function的形参实现,但如何把数据传回,是个比较麻烦的问题。 在GUIDE下,系统自动生成了output_fcn函数,可以用它来实现从子窗口到主…

【P4】JMeter 原生录制方式——HTTP代理服务器

文章目录 一、准备工作二、原生录制方式——HTTP2.1、设计说明2.2、测试计划设计 三、原生录制方式——HTTPS3.1、设计说明3.2、测试计划设计 四、HTTP代理服务器主要参数说明4.1、目标控制器4.2、分组:在组间添加分割4.3、分组:每个组放入一个新的控制器…

2023年清华大学五道口金融学院招收公开招考博士研究生(普博)拟录取名单公示

公示期:十个工作日( 2023年4月24日至5月9日 ) 经综合考核和研究生招生工作领导小组讨论,报学校研究生招生工作领导小组批准,清华大学五道口金融学院2023年公开招考博士研究生拟录取名单,现已确定&#xff…

Python 扩展教程(1): 调用百度AI

关于AI 自有计算机以来,人们就想让计算机具有人的感知、意识、概念、思维、行为,代替人的工作。AI (Artificial Interligence)是计算机科学的一个分支,专注研究、开发、模拟、扩展人的智能的理论、方法、技术及应用。 从研究领域和方法上&…

【Linux】6. 实现进度条和git基本认识和使用

编写小程序 – 进度条 1. 理解缓冲区概念 2. 理解\n 和 \r的区别 在操作系统层面:\n 表示换行 \r表示回车 在语言层面: \n就是回车换行 3. 进度条的需求分析 4. 代码编译 5. 代码优化 到这里进度条的编写也就完成了,✿✿ヽ(▽)ノ✿&#…

C语言基础应用(六)数组

引言 现程序要求,录入班里60名同学的所有成绩,我们应该怎么录入呢?按照我们之前所学习的难道要声明60个变量来录入成绩嘛? 就像: int main() {int a1,a2,a3,...,a60;scanf("%d%d%d...%d",&a1,&a2,…

anaconda使用教程

一.创建conda虚拟环境 conda create -n AI python3.8 conda create -n #代表创建conda虚拟环境 AI #创建的虚拟环境的名称 python3.8 #代表指定的Python版本 二.查看已创建的conda虚拟环境 conda env list三.激活conda虚拟环境 conda activate AI #AI 是co…

手把手教你爬取网站信息

如题,理解这一部分需要一定的Python基础,有些代码我不做详细解释了,但是用这个方法是确实可以爬到的。 此次用以下这个页面(可以用md5软件解密) 1476409DEDD7A55FE86915BC370A3ECD 爬取电影的详情数据 1. 在抓包⼯具…

Linux常见指令 (2)

Linux常见指令 ⑵ 补充man描述:用法:例子 echo描述:用法:例子 echo 字符串例子 echo 字符串 > 文件例子 追加重定向(>>)例子 输出重定向(>)来创建文件 && (>)来清空文件 cat描述:用法:例子 cat && cat 文件补充:例子 cat 文件 && cat &…

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台 一、认识SeaTunnel二、SeaTunnel 系统架构、工作流程与特性三、SeaTunnel工作架构四、部署SeaTunnel1.安装Java2.下载SeaTunnel3.安装连接器 五、快速启动作业1.添加作业配置文件以定义…