【软考学习16】用位示图法,轻松解决空闲存储空间的管理难题

简介: 【软考学习16】用位示图法,轻松解决空闲存储空间的管理难题


本文将学习了用位示图法,解决空闲存储空间的管理难题,位示图GIT 贡献度、高铁票务、电影票务等领域有着较多应用场景,我们要学会计算位示图的物理块问题


一、空闲存储空间

磁盘是用来存储程序数据的,存在没有放满的情况,即有空闲存储空间的情况,我们需要将这些空闲存储空间管理起来,以便某个程序需要运行时,给这个程序分配相应的空间

空闲存储空间的管理有四种不同的方法,分别是空闲区表法空闲链表法位示图法成组链接法

1.1 空闲区表法

空闲区表法,使用一张表来记录哪些地方是空闲的,以便把它们管理起来。

1.2 空闲链表法

空闲区表法,把空闲的区块都链起来,链成一张链表,需要分配空间时,根据链表顺序进行遍历,从而分配相应的空间。

1.3 位示图法

最主要的空闲区域管理方法,后面详细介绍。

1.4 成组链接法

对这些空闲的区块,既分组又分链,进行空闲区域管理的方法。


二、位示图法的应用

位示图法的原理,就是画一张位示图,然后图中每个格子表达的区域,用 1 表示该区域已被占用,用 0 表示该区域没被占用

我们将所有的存储空间分成很多个物理块,就能够很直观的看出哪些物理块正在被使用,哪些物理块是空闲的,从而轻松解决空闲存储空间的管理难题。

在开源项目托管网站上,一般都有 GIT 贡献度热力图功能,如下图所示。

这个热力图,代表着过去的每一天,你有没有在提交代码。

如果提交了,那一天的区域显示绿色;反之如果没有提交,那就显示白色。

这其实就是示图法的一个直接应用。


又比如在购买高铁票时,在购票软件中会显示座位图,如下图所示。

对于已被购买的座位,通常用灰色来表示,旅客无法再点击购买。

反之还没被购买的座位,会显示绿色背景,提示旅客可以购买,这也是位示图法在高铁票务场景的一个实际运用。

在高铁票务场景是这样,在电影院,也是一样,也可以用位示图法来解决票务空闲空间的问题。

三、例题

请看下面的例题:

在某个文件管理系统中使用位示图,磁盘的物理块编码从 0 开始编号系统字长 32 位,每一位对应文件存储器上的一个物理块,如下图所示。

假设将 4195 号物理块分配给某文件,那么该物理块使用位示图的第几个字来描述?系统应该将该字的第几个位置置几

首先看到例题中,一个字节占 4 个物理块,第 4195 号物理块(从 0 开始编码)实际上就是我们认为的第 4196 个物理块(我们通常从 1 开始计算)。

所以我们用 4196 / 32,等于 131.125,也等于 131 余 4。

也就是超过 131 了,所以前面 131 个物理块都填满,那么当前占的物理块位置是第 132 个

题目要求将某些物理块占用,并且分配使用,肯定是要置为 1 的。

第 1 到 第 131 个物理块占用了 131 * 32 个位置(4192),即从 0 到 4191

第 132 个物理块的第位置,那就是 4192

第 132 个物理块的第位置,那就是 4193

第 132 个物理块的第位置,那就是 4194

第 132 个物理块的第位置,那就是 4195

所以答案就是将第三位置 置 1

四、总结

本文学习了用位示图法,解决空闲存储空间的管理难题,位示图在 GIT 贡献度、高铁票务、电影票务等领域有着较多应用场景,我们要学会计算位示图的物理块问题


相关文章
|
2月前
|
存储 算法 数据处理
【软件设计师备考 专题 】虚拟存储器基本工作原理,多级存储体系的性能价格
【软件设计师备考 专题 】虚拟存储器基本工作原理,多级存储体系的性能价格
80 0
|
2月前
|
存储 算法 调度
【软件设计师备考 专题 】存储管理(主存保护、动态连接分配、分段、分页、虚存)
【软件设计师备考 专题 】存储管理(主存保护、动态连接分配、分段、分页、虚存)
51 0
|
4月前
|
C语言
【动态内存管理助力程序优化与性能飞升】(中)
【动态内存管理助力程序优化与性能飞升】
|
4月前
|
存储 程序员 C语言
【动态内存管理助力程序优化与性能飞升】(下)
【动态内存管理助力程序优化与性能飞升】
|
2月前
详解ApacheHudi如何节约宝贵的存储空间
详解ApacheHudi如何节约宝贵的存储空间
13 0
|
4月前
|
编译器 C语言
【动态内存管理助力程序优化与性能飞升】(上)
【动态内存管理助力程序优化与性能飞升】
|
7月前
|
前端开发 搜索推荐 程序员
程序员空闲时间是继续卷技术,还是找副业?
程序员空闲时间是继续卷技术,还是找副业?
27 0
|
8月前
|
机器学习/深度学习 传感器 安全
2023 年高教社杯D题圈养湖羊的空间利用率思路及参考代码(持续更新)
2023 年高教社杯D题圈养湖羊的空间利用率思路及参考代码(持续更新)
|
10月前
|
Java
项目实战典型案例20——内存长期占用导致系统慢
项目实战典型案例20——内存长期占用导致系统慢
55 0
|
10月前
|
Java
【项目实战典型案例】20.内存长期占用导致系统慢
【项目实战典型案例】20.内存长期占用导致系统慢