问:文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024B,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是(C)。
A. 81,1 B. 81,2
C. 82,1 C. 82,2
解:从题可知,位图是存于(32~127号磁盘块),故第32号磁盘块中可以存放的位在(0~8191),因为一个磁盘块大小为1024B*8bit = 8192位,即表示一个磁盘中可以表示8192位,位图法是使用一个位表示一个磁盘块的使用情况,故而在第32号磁盘块可以表示的磁盘块是(0~8191号磁盘块,从0开始编号),第33号磁盘块则表示(8192 ~ 8192+8191=16383号),其他依此类推。
计算 409612/(8192位) = 50.01,存在余数,表示50个磁盘块是表示不到409612的,故而需要51个磁盘块。使用50个磁盘块可以表示(0~409599号,明显表示不到409612),验证一下 8192*50 = 409600(从0开始编号),所以表示 409612确实在第51个磁盘上。
而由于位图是从32号开始的,故而应放在32+50=82号磁盘块上,这里别整错了,从32作为第一块磁盘块数到第51块(32,34,35,36.....82),刚好是82,
如(2~10中表示的个数有:2,3,4,5,6,7,8,9,10,总共有(10-2 +1 = 9个),同理(32~82)用 82-32 = 50 而实际表示的则有50+1=51个。
所以可以知道409612就在第82号磁盘块上。
而求其字节编号,已知一个字节表示8位,在82号磁盘块上表示的位数(磁盘块号数)从409600开始,409612即是0~12即第13个位,字节序号也从0开始编号则有:
0号字节序号则表示(0~7)位,
1号字节序号表示(8~15)位,
第13个位明显处于8~15位中,故而字节序号为 1 。