位示图
1操作系统实验报告
实验名称:____________________________成绩:___________
专业班级:________姓名:_____ _____学号:0709014137
实验日期:年月日
实验报告日期:年月日
一、实验目的:实现位示图对文件存储空的管理
二、实验内容
在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件系统。在退出这个简单的文件系统时,应将该虚拟文件系统保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘空间中。2.文件存储空间的分配可采用显式链接分配或其他的办法。3.空闲空间的管理可选择位示图或其他的办法。。#include
这种方法是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。文件存储器上的物理块依次编号为:0、1、2、…。
位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时表示已分配。由所有盘块对应的位构成一个集合,称为位示图。位示图也可描述为一个二维数组map:Var map:array[1...m,1...n]of bit;
·修改位示图,令map[i,j]=1。
盘块的回收
盘块的回收分两步:
·将回收盘块的盘块号转换成位于图中的行号和列号。转换公式为:
i=(b-1)DIVn+1
j=(b-1)MODn+1
·修改位示图。令map[i,j]=0。
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
2
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
3
┇
15
位示图
盘块的分配
根据位示图进行盘块分配时,可分三步进行:
·顺序扫描位示图,从中找出一个或一组值均为“0”的二进制位;
·将找到的二进制位,转换成与之相应的盘块号;