基本法求解位示图编号问题
@(OS)
文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中。每个磁盘块占用1024B,盘块和块字节均从0开始编号。假设要释放的盘块号为409612,则位示图中要修改的位所在的盘号和块内字节分别是:
C⎯⎯⎯
A. 81,1
B. 81,2
C. 82,1
D. 82, 2
分析:必须要说的是代入法更快。首先看81号,则32~80号共80-32+1 = 49块。则有49*1024*8 = 401408位,可以标记的磁盘块数远小于409612。所以排除A,B。
如果是在块号为82上,则前面共有32~81:81-32+1 = 50块,可以标记的块数为:409600块。OK,块号为409612的其实是第409613块,所以可以确定的是在块82上,一个字节标记8个块,两个字节标记16个,8< 13 <16,所以在第二个字节上。也就是1号字节。
即:82,1.
不必选用什么公式,基本法才是最佳的。
或直接算:409612/(1024*8) = 50.001
表示存在第51块上。因为是从32开始,即块32是第一块,所以32+50 = 82,这是小学数学,但是一不小心就算到83或81,从32开始数51块,32,33,34,35,…81,82。再计算50块可以标记的磁盘块数是409600,还需要两个字节,因此在1号字节上。
此外,位示图存在磁盘块上,似乎觉得影响计算,实际不用管,一样标记被位示图本身占用的磁盘。