首页 > 试题广场 >

位图中要修改的位所在的盘块号和块内字节序号分别

[单选题]

文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127 号块中,每个盘块占1024 个字节,盘块和块内字节均从 0 开始编号。假设要释放的盘块号为 409612,则位图中要修改的位所在的盘块号和块内字节序号分别是()。

  • 81、1
  • 81、2
  • 82、1
  • 82、2
推荐
盘块号   =   起始块号+   ë   盘块号   /(1024*8)   û   =32+   ë   409612/(1024*8)   û   =32+50=82   ,,这里问的是块内字节号而不是位号,因此还需要除以   8     1   字节   =8   位),块内字节号   =   é   (   盘块号   %(1024*8))/8   ù   =2  
编辑于 2016-12-15 18:27:41 回复(1)
    位图法:顾名思义就是使用每一位来存储某种状态。
1. 每个盘块占1024个字节,1024个字节共有 1024 *  8 = 8192位
2 .要释放的盘块号为 409612, 409612 / 8192 = 50 余 12.
3 .且盘块号起始位置为32,所以盘块号为 32 + 50 = 82.
4 .块内字节序号12%8 = 1    (0~7位块内字节序号为0, 8~15块内字节序号为1)
    故选C.
发表于 2017-08-27 16:48:55 回复(2)
所有计算都从0开始:
409612/(1024*8)=50余12。
一步步思考,当块号为80时,32~80共有80-32+1=49,所以当块号为81时,有50块;而又余了12(12为位号,实际上是第13块),因此块号为82。在这个块号为82的磁盘块中,0~7位为0号字节,8~15位为1号字节,很显然12落在8~15之间,所以块内字节序号为1。
发表于 2017-01-15 10:56:38 回复(1)
直接计算,位示图存储,每位代表一个盘块,409612/(1024*8)=50,盘块号=50+32=82,块内偏移=409612-(1024*8*50))%8=1,所以盘块号为82,块内字节序号为1
发表于 2016-12-11 23:59:25 回复(4)

必须要说的是代入法更快。首先看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.

发表于 2016-12-07 10:26:14 回复(0)
C
该盘块号在位示图第50块中,即32+50=82
bit偏移是12b,在第1个字节中
发表于 2019-07-21 11:59:53 回复(0)

位图法:每一位存储0或1,表示空间被占用还是释放

盘块号= 起始块号 + 盘块号/(1024 * 8)

409612 = 32 + 409612/8192 = 32 + 50 = 82(盘块号)

409612 ÷ 8192 = 50......12(位号)

12 = 8 + 4,占2个字节,又因为 块内字节从0开始编号,0-7位 的块内字节序号是0, 8-15位 的块内字节序号是1,所以块内字节序号是1(块内字节序号)

发表于 2018-01-30 10:25:23 回复(0)

最后是12 / 8不是12 % 8!!你取模不是在0-7字节序号内吗,一共有1024个字节序号。好几个高赞回答写错了都太讽刺了,特意过来评价一下

发表于 2019-10-13 17:48:23 回复(0)
C,409612/(1024*8)=50,盘块号=50+32=82,块内偏移=409612-(1024*8*50))%8=1,所以盘块号为82,块内字节序号为1
发表于 2017-06-29 15:19:39 回复(0)

盘块号 = 起始块号+ ë 盘块号 /(1024*8) û =32+ ë 409612/(1024*8) û =32+50=82 ,,这里问的是块内字节号而不是位号,因此还需要除以 8 1 字节 =8 位),块内字节号 = é ( 盘块号 %(1024*8))/8 ù =2 。(来自王道论坛)

发表于 2016-12-05 18:56:50 回复(0)