【系统架构设计师】操作系统 - 文件管理 ② ( 位示图 | 空闲区域 管理 | 位号 | 字号 )

文章目录

  • 一、空闲区域 管理
    • 1、空闲区域分配
    • 2、空闲区域 管理方式 简介
  • 二、位示图 简介
    • 1、位示图 表示
    • 2、位示图 字号
    • 3、位示图 位号
    • 4、位示图 中 比特位 分组管理
  • 三、位示图 考点
    • 1、计算磁盘 位示图 的大小
    • 2、位示图 位置计算





一、空闲区域 管理




1、空闲区域分配


在 索引文件结构 中 , 向文件写入数据时 , 需要进行 数据块 的分配 , 涉及数据块的动态分配策略 , 将空闲数据库 分配给文件 , 使用索引指向新分配的 数据块 ;

从 空闲数据块池 中为文件分配必要的物理块 , 并更新索引结构以指向这些新分配的数据块 ;

为了有效管理这些物理块的分配状态 , 即 区分哪些物理块当前处于空闲状态(即未被占用) , 而哪些物理块已被使用 , 必须引入一种精细的存储空间空闲区域管理机制 ;

这一机制对于 确保文件系统的高效运行与资源的最优化利用 至关重要 ;


2、空闲区域 管理方式 简介


存储空间 中 空闲区域 的管理有很多方式 :

  • 位示图法 ( 考点 ) : 用二进制位 ( 0/1 ) 表示存储单元(如磁盘块)的空闲状态 , 构成位示图 ;
    • 分配时扫描位示图,寻找连续空闲位 0 并标记为占用 1 ;
    • 释放时将对应位重置为 0 ;
  • 空闲区表法 : 维护一张空闲区表 , 记录所有空闲区域的起始地址和长度 ;
    • 分配时 , 按特定策略(如首次适应、最佳适应)搜索表 , 找到合适区域后分配 , 并更新表项 ;
    • 释放时 , 合并相邻空闲区域 , 更新表项 ;
  • 空闲链表法 : 将空闲区域通过链表连接 , 每个空闲块头部保存下一空闲块的地址和大小 ;
    • 分配时遍历链表 , 找到足够大的块后分割或直接分配 , 并更新链表 ;
    • 释放时插入链表 , 并检查相邻块是否空闲以合并 ;
  • 成组链接法 : 结合空闲表与链表 , 将空闲块分组成栈结构 , 每组首块记录下一组地址和本组空闲块数 ;
    • 分配时从当前组取块 , 若当前组用完 , 根据首块指针跳转到下一组 ;
    • 释放时加入当前组 , 组满后形成新组并更新首块指针 ;




二、位示图 简介




1、位示图 表示


下图中 位示图 , 与 电影院 选座类似 , 下图中 蓝色的标注 1 的位置 表示已经被使用了 , 白色标注 0 的位置 表示空闲的区域 ;

  • 已经使用的 数据块 使用 1 标注 , 写入文件数据时 , 就不能再使用该 数据块 了 ;
  • 未被使用的 数据块 使用 0 标注 , 可以被写入文件数据 , 写入数据后 , 使用 索引 指向该数据块 ;

在这里插入图片描述


2、位示图 字号


位示图通常 按 固定长度的 字 ( Word ) 划分 , 每个字包含多个 二进制位 , 如 : 32位 或 64位 , 与系统字长相关 ;

字号 表示目标磁盘块所在的 字 的索引 ;


字号 计算公式 : 字号 = 物理块号 / 字长 ;

上述公式中 , 字长 的单位是 比特位 ;


3、位示图 位号


位示图 中 , 在确定字号后 , 位号表示目标磁盘块在该字中的具体二进制位位置 ;

计算公式 : 位号 = 物理块号 mod 字长

上述公式中 , 字长 的 单位是 比特位 ;


4、位示图 中 比特位 分组管理


比特位 分组管理 :

位示图 按照 比特位 进行管理 , 一个 比特位 表示一个 数据块 是否可用 , 0 表示可用 , 1 表示不可能 ( 已被分配给文件存放数据 ) ;

比特位 单位太小 , 一般按照 字 进行管理 , 每个 字 都有一个 字长概念 ;


如 : 字长 2 字节 , 表示 每个 字 有 2 字节 ( Byte ) , 有 16 个比特位 ( bit) ;

字长 为 2 字节 的 字 , 每个 字 有 0 ~ 15 号 共 16 个 比特位 ;


下图中 ,

  • 位序 : 顶部 第一行 的 第 0 ~ 15 格子 , 表示 每个字的 16 个 比特位 ;
  • 字序 : 左侧 第一列 的 第 0 ~ 15 格子 , 表示 有 16 个字 ;

在这里插入图片描述


第 33 号 磁盘块 , 对应的物理块号为 32 , 对应的 位序 和 字序 计算方式 :

  • 字号 : 32 / 16 = 2 , 其位序 是 2 , 也就是 位示图中的 第 3 行 , 对应 第 2 号 字序 ;
  • 位号 : 32 mod 16 = 0 , 除以 16 得到余数 0 , 对应 第 0 号 位序 ;

第 2 号 字号 , 第 0 号 位号 , 对应位示图中的 红色矩形框位置 ,

该位置 是 蓝色 被标注为 1 , 说明 第 33 号 磁盘块 已经被使用 ;
在这里插入图片描述





三、位示图 考点




1、计算磁盘 位示图 的大小


位示图 的 字长 32 位 , 也就是 4 字节 ;

磁盘容量 300GB , 物理块 大小 1MB ;

计算 位示图 需要有多少个字 , 也就是 字号 的取值范围 ;


磁盘容量 300 GB = 300 x 1024 MB ;

该磁盘的 物理块数 = 300 x 1024 MB / 1 MB = 300 x 1024 个 ;

磁盘的 物理块数 就是 位示图 的 位数 需要有 300 x 1024 位 ;

位示图 字长 4 字节 , 也就是 32 位 ;

对应的 字 的个数是 300 x 1024 / 32 = 300 x 32 = 9600 个 ;


字号 的 取值范围 是 0 ~ 9599 ;


该磁盘的位示图

  • 位号 : 取值范围 0 ~ 31 ;
  • 字号 : 取值范围 0 ~ 9599 ;

该磁盘的位示图 是一个 32 x 9600 的矩阵 , 如下图所示 :

在这里插入图片描述


2、位示图 位置计算


下面的位示图

字长 4 字节 , 32 位 , 位号取值范围 0 ~ 31 ,

字数 9600 位 , 字号 取值范围 0 ~ 9599 , 位示图如下所示 :

在这里插入图片描述

计算 磁盘的 2048 号 物理块 对应的 字号 和 位号 ;


物理块号 从 0 开始计数 , 2048 号物理块 对应着 第 2049 号物理块 ;

字号计算 : 2048 / 32 = 64 , 字号是 64 ;

位号计算 : 2048 mod 32 = 0 , 位号为 0 ;


最终计算结果 : 字号 64 , 位号 0 ;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringData Redis:RedisTemplate配置与数据操作

文章目录 引言一、Redis概述与环境准备二、RedisTemplate基础配置三、连接属性配置四、操作String类型数据五、操作Hash类型数据六、操作List类型数据七、操作Set类型数据八、操作ZSet类型数据九、事务与管道操作总结 引言 Redis作为高性能的NoSQL数据库,在分布式系…

串口烧录出现频繁回复乱码 频繁回复一个数字且烧录失败 字节混乱

这是因为你的芯片没有处于系统存储区启动一直未进入bootloader 解决办法是检查boot引脚接正确没,要在系统存储器启动

共享经济再中介化进程中的技术创新与模式重构研究——以“开源AI智能名片链动2+1模式S2B2C商城小程序“为例

摘要 本文基于共享经济中介化演进的双重逻辑,通过案例研究与技术解构,探讨"开源AI智能名片链动21分销机制S2B2C商城小程序"集成系统如何重构数字经济时代的价值网络。研究发现,该技术生态通过三维需求匹配、动态价值分配与智能风险…

【linux】虚拟机执行sudo yum isntall perl报错 could not retrieve mirrorlist htt:

项目场景: 提示:虚拟机安装拓展包,sudo yum install perl Virtualbox 在不安装增强功能扩展的情况下, 无法自适应分辨率和共享剪切板等操作 问题描述 原因分析: 提示:这里填写问题的分析: 出现这个错误是因…

网络编程知识预备阶段

1. OSI七层模型 OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和…

我的Gitee

算法与数据结构: 浙海大小趴菜的一些记录 后续也会更新一些项目,小趴菜以后也会变得很厉害

Collection合集(单列集合)

Collection代表单列集合,每个元素(数据)只包含一个值。Collection实际上是一个泛型接口 Collection集合常用API: 代码实现: Collection集合遍历 遍历方式一:迭代器 迭代器是用来遍历集合的专用方式&#…

旅游类小程序界面设计

产品概述 艾啦游是一款互联网旅游类小程序,致力于国内精品旅游,以及拥有自由行、专属热榜单、出行攻略等诸多功能,汇聚了许多国内的人气景点,与诸多城市的酒店也保持合作,打造一体式旅行服务,更有不断上新…

移动端开发基础与常见布局

一、移动端基础 1.浏览器现状 ⑴.PC端常见浏览器 360浏览器、谷歌浏览器、火狐浏览器、QQ浏览 器、百度浏览器、搜狗浏览器、IE浏览器。 ⑵.移动端常见浏览器 UC浏览器,QQ浏览器,欧朋浏览器, 百度手机浏览器,360安全浏览器&am…

[算法] 贪心--矩阵消除游戏

文章目录 1. 题意2. 思路贪心思路1思路1并不正确思路1为什么是错误的?这道题该如何求解?枚举思路是超时的!枚举 贪心 3. 编码 今天咱们来分享一道基础的贪心题目 -> 矩阵消除游戏 对于贪心算法的题目, 我感觉是对于初学者没必要太注重证明过程, 因为这玩意的变数比较大, …

数学——A. K-divisible Sum + D. Exam in MAC

A. K-divisible Sum 题目: 思路: 以下 “[xxx]” 符号均代表向上取整 我们假设总和是sum,那么就有sum k * cnt 要想最大值最小,肯定是要让sum尽可能小,这样每个元素都能变小 最小情况是 sum 恰好等于 n 时&#…

Docker 》》Docker Compose 》》network 网络 compose

docker 默认的网络 三种模式 # 列出所有当前主机上或Swarm集群上的网络 docker network ls#查看网络详情 docker network inspect network名称# 清除未使用的docker网络 docker network prune -f# 创建网络 ocker network create -d bridge 网络名称 docker network create –s…

RabbitMQ延迟消息

文章目录 延迟消息死信交换机延迟消息延迟消息应用场景 延迟消息 生产者在发送消息的时候指定一个时间,消费者不会立即收到该消息,而是在指定时间之后才收到消息,这就是延迟消息。 比如说这么一个场景,用户下单后将商品库存进行…

phpstudy+phpstorm+xdebug【学习笔记】

配置PHPStudy 配置PHPSTORM phpstorm选择PHP版本 配置DEBUG 设置服务器 编辑配置 学习参考链接::https://blog.csdn.net/m0_60571842/article/details/133246064

58.Harmonyos NEXT 图片预览组件架构设计与实现原理

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! Harmonyos NEXT 图片预览组件架构设计与实现原理 文章目录 Harmonyos NEXT 图片预览组件架构设计与实现原理效果预览一、组件架构概述1. 核心组件层…

Android 手机启动过程

梳理 为了梳理思路,笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解,如有错误,欢迎各位指正

Chat-TTS-UI:文字转语音 - 本地部署方案

Chat-TTS-UI 是一个基于 ChatTTS 模型的本地网页界面,专为满足用户在信息过载时代轻松获取大量文字信息的需求而设计。它支持中英文混合输入、多种音色选择,并提供 API 接口,方便开发者集成到其他应用中。其简洁易用的网页界面、细粒度控制以及 GPU 加速等高级功能,使其广泛…

11. Pandas :操作Excel文件(Excel报表的案例研究)

从一个装有各种 Excel 文件的文件夹开始,这些文件需要被整合到 Excel 报表中。 它们包含了虚构的电信运营商在全美各营业厅的套餐(金、银、铜)销售情况。每个月有两个文件,子文件夹 new 中的是新用户,子文件夹 existin…

一周学会Flask3 Python Web开发-SQLAlchemy添加数据操作-班级模块

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili SQLAlchemy提供session.add()方法添加model实体数据,以及提供session.commit()提交事务。 首先list.html加一个添…

大型语言模型与强化学习的融合:迈向通用人工智能的新范式——基于基础复现的实验平台构建

1. 引言 大型语言模型(LLM)在自然语言处理领域的突破,展现了强大的知识存储、推理和生成能力,为人工智能带来了新的可能性。强化学习(RL)作为一种通过与环境交互学习最优策略的方法,在智能体训…