有一个计算机系统利用下图所示的位示图(行号、列号都从1开始编号)来管理空闲盘块。如果盘块从1开始编号,每个盘块的大小为1KB(0表示盘块空闲,1为表示被占用)。
(1)现要给文件分配两个盘块,试具体说明分配过程。
(2)若要释放磁盘的第200块,应如何处理?
答:
(1)
①顺序检索位示图,从中找到第 一个值为0的二进制位,得到其行号i=2,列号j = 4
②计算出位所对应的盘块号:b = n(i-1)+j=16(2-1)+4 = 20
③修改位示图,令: map[2,4] = 1,并将对应块 20 分配给文件。
按照同样的方式,可找到第 2 行、第 5 列的值为 0 的位,转换为盘块号 21. 将位的值修改为1,并将 21 号盘块分配给文件。
(2) 释放磁盘的第 200 块时,应进行如下处理:
①计算出磁盘第 200 块所对应的二进制位的行号 i 和列号 j: i=(200-1)/16+1=13 ,j=(200-1)%16+1=8
②修改位示图,令: map[13 ,8] = 0,表示对应块为空闲块。