架构师-位示图

文件存储空间管理

位示图:每个二进制位对应一个盘块。

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

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

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

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

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

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

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

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

 

位示图的位表示的是比特位(bit),也就是一位二进制,在记录空闲空间的时候,主要需要完成的工作是将空闲的空间列出来,方便去调用,在某一个空闲空间被使用的时候,需要分配出去,如果用完之后,空间还可以被回收,在这里主要区别的就是这个块有没有被用,占用和空闲是两种不同的状态,来那种状态用一位二进制来表示就足够了。

在记录过程当中,可以用一位二进制的当中0表示这个磁盘块是空闲的,1表示磁盘块已经被占用,如果说对一个空闲磁盘块要分配出去,就把它当前位置上的0置为1就可以了,要回收的话就是把1改为0。

类似于电影院选位置,选择或占用的一个过程。

对于位示图来看的话,它是以比特位来进行管理的,而一位二进制比特位是很小的一个单位,所以一般处理的时候,会先把比特位进行分组,在进行管理。如何分组?在之前存储单元的时候介绍过,分为按字节、或者按字分组,而位示图当中不考虑字节,直接按字分组,具体一个字多长?占据多少比特位?不同的计算机会存在区别,所以题干当中一般会说,比如字长多少,就是说有多少个比特位进行分组。上面的图是就是16个比特位来划分的。

目前架构位示图考查较少。

例题
某字长位32位的计算机的文件管理系统采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为(9600)字。

位示图表示的是磁盘情况,一个磁盘对应一个比特位来记录
磁盘总容量为300GB,也就是磁盘块大小为300GB
每一个物理块大小是1MB
则可以求出磁盘块的数量=300GB/1MB,1GB和1MB之间转换是210,则磁盘块的数量=300GB/1MB=300×210
也就是需要300×210个比特位来表示位示图

问一共需要多少个字?
题目中告知字长位32位的计算机,所以需要的字=300×210/32=300×210/25=300×32=9600

继续上题,位示图如下,求2048号,它所占据的字号和位号。

这里要注意看,图中的位示图的宾浩是从0还是从1开始,设计到后续计算是否需要+1-1的操作

图中的字号和位号都是0开始的,因此需要考虑+1-1操作

2048号,是2049个磁盘,这个磁盘每32个比特位占据一个字,2049需要的字为=2049/32=64…1,也就是64余1
表示放在第64个字的时候,放不下了,因此需要放在第65个字的位置,第65个字的编号为64

例题

若计算机系统的字长为128位,磁盘的容量为2048GB,物理块的大小为8MB,假设文件管理系统采用位示图(bitmap)法记录该计算机系统磁盘的使用情况,那么位示图的大小需要( )个字。

A.1024

B.2048

C.4096

D.8192

所属知识点:操作系统>位示图

答案解析:

磁盘容量2048G,物理块大小8MB,则磁盘共有2048GB/8MB=256*2^10个物理块,即2048*1024/8=262144。

采用位示图记录磁盘使用情况,每个磁盘块占据1bit,共需要256*2^10bit即262144进行记录。

每128个bit为为1个字,则共需要256*2^10/128个字,即262144/128=2048个字。

例题:

在某个文件管理系统中使用位示图,磁盘的物理块编码从 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫1982

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值