软件设计师-操作系统-多级索引

前言

具体的多级索引的知识可看另外一篇文章:【系统架构设计师】操作系统 - 文件管理 ① ( 索引文件结构 | 直接索引方式 | 间接索引方式 | 一级间接索引方式 | 二级间接索引方式 | 三级间接索引方式 )-CSDN博客

2020年下半年

答案:25题答案选B;26题答案选D(直接选最大的)

分析题目信息:

  • i_addr[0]~i_addr[4] 采用直接地址索引(对应逻辑块号0~4)。
  • i_addr[5]和i_addr[6] 采用一级间接地址索引。
  • i_addr[7] 采用二级间接地址索引。

第25问中,问的是逻辑块号为4和5的信息,逻辑块号是从0开始的,所以逻辑块号4是采用直接地址索引,逻辑块号5采用一级间接地址索引。

第26问中

步骤1:计算直接地址索引贡献的数据块数

i_addr[0]~i_addr[4] 共5个直接地址索引,每个直接指向一个数据块


步骤2:计算一级间接地址索引贡献的数据块数

i_addr[5]和i_addr[6] 共2个一级间接地址索引,每个指向一个一级索引块,且每个索引块大小为1KB(1024字节),每个地址项大小为4字节,因此每个索引块可包含的地址项数量为:

因此,2个一级间接地址索引贡献的数据块数为:2 × 256个地址项 = 512个数据块


步骤3:计算二级间接地址索引贡献的数据块数

i_addr[7] 是一个二级间接地址索引,它指向一个一级索引块(第一层)。二级间接地址索引能寻址的数据块数量为:

256个 × 256个 = 65536个数据块


步骤4:计算总数据块数

直接、一级间接和二级间接贡献的数据块数相加:

5(直接)+ 512(一级间接)+ 65536(二级间接)= 66053个数据块


步骤5:计算文件最大长度

66053个数据块 × 1KB = 66053KB

2017年下半年

答案:选择C选项

分析:

求物理块数量 = 1KB / 3B = 1024B / 3B = 341个,余数为1个

一级索引的文件最大长度为:341个 × 1 KB = 341 KB

一级索引的文件最大长度为:341个 × 341个 × 1 KB = 116281 KB

2012年下半年

答案:27题选择C;28题选择D(直接选最大的)

分析:

  • i_addr[0]~i_addr[4] 采用直接地址索引(对应逻辑块号0~4)。
  • i_addr[5]和i_addr[6] 采用一级间接地址索引。
  • i_addr[7] 采用二级间接地址索引。

第27问中,问的是逻辑块号为5和518的信息,逻辑块号是从0开始的,所以逻辑块号5是采用一级地址索引,逻辑块号518的计算方法如下:

直接地址索引的覆盖范围​​:0 ~ 4块

一级间接地址索引的覆盖范围​​:

∵ 每个索引块可包含的地址项数量 = 索引块大小 / 地址项大小 = 1024字节 / 4字节 = 256个地址项

第1个一级间接地址索引覆盖块号:5 ~ 260(5 + 256 - 1 = 260)

第2个一级间接地址索引覆盖块号:261 ~ 516(261 + 256 - 1 = 516)

5号 ~ 516号 为一级间接索引块号范围

二级间接地址索引的覆盖范围​​:

二级间接地址索引能覆盖的数据块数量为:256 × 256= 65536个数据块

即 517 ~ 66052(517 + 65536 - 1)

所以518号物理块是二级间接索引。

第28问中

步骤1:计算直接地址索引贡献的数据块数

i_addr[0]~i_addr[4] 共5个直接地址索引,每个直接指向一个数据块


步骤2:计算一级间接地址索引贡献的数据块数

i_addr[5]和i_addr[6] 共2个一级间接地址索引,每个指向一个一级索引块,且每个索引块大小为1KB(1024字节),每个地址项大小为4字节,因此每个索引块可包含的地址项数量为:

因此,2个一级间接地址索引贡献的数据块数为:2 × 256个地址项 = 512个数据块


步骤3:计算二级间接地址索引贡献的数据块数

i_addr[7] 是一个二级间接地址索引,它指向一个一级索引块(第一层)。二级间接地址索引能寻址的数据块数量为:

256个 × 256个 = 65536个数据块


步骤4:计算总数据块数

直接、一级间接和二级间接贡献的数据块数相加:

5(直接)+ 512(一级间接)+ 65536(二级间接)= 66053个数据块


步骤5:计算文件最大长度

66053个数据块 × 1KB = 66053KB

题目3

某文件系统文件存储采用文件索引节点法。假设文件索引节点中有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,其中地址项iaddr[0]~iaddr[5]为直接地址索引,iaddr[6]是一级间接地址索引,iaddr[7]是二级间接地址索引,磁盘索引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是( )KB。若要访问iclsClient.dll文件的逻辑块号分别为6、520和1030,则系统应分别采用()。

第一问:

A.1030

B.65796

C.1049606

D.4198424

第二问:

A.直接地址索引、一级间接地址索引和二级间接地址索引

B.直接地址索引、二级间接地址索引和二级间接地址索引

C.一级间接地址索引、一级间接地址索引和二级间接地址索引

D.一级间接地址索引、二级间接地址索引和二级间接地址索引

答案:第一问选D选项(选最大值就行),二问选C选项

解析:

  • i_addr[0]~i_addr[5] 采用直接地址索引(对应逻辑块号0~5)。
  • i_addr[6]采用一级间接地址索引(对应逻辑块号6)。
  • i_addr[7] 采用二级间接地址索引(对应逻辑块号7)。

第一问:

步骤1:计算直接地址索引贡献的数据块数

i_addr[0]~i_addr[5] 共6个直接地址索引,每个直接指向一个数据块


步骤2:计算一级间接地址索引贡献的数据块数

i_addr[6]为一级间接地址索引,每个指向一个一级索引块,且每个索引块大小为4KB(4096字节),每个地址项大小为4字节,因此每个索引块可包含的地址项数量为:

4096字节 / 4字节 = 1024个地址项


步骤3:计算二级间接地址索引贡献的数据块数

i_addr[7] 是一个二级间接地址索引,它指向一个一级索引块(第一层)。二级间接地址索引能寻址的数据块数量为:

1024个 × 1024个 = 1048576个


步骤4:计算总数据块数

直接、一级间接和二级间接的数据块数相加:

6(直接) + 1024(一级间接)+ 1048576(二级间接)= 1049606(个)


步骤5:计算文件最大长度

1049606 × 4KB = 4198424KB

第二问:

第【0 ~ 5】号为直接索引。

第【6 ~ 1029】号为一级间接索引(1024 + 6 - 1)

第【1030 ~ 1049605】号为二级间接索引(1024 * 1024 +1030 - 1)

逻辑块号6是一级间接索引,可直接排除A选项和B选项;逻辑块号520为一级间接索引,逻辑块号1030为二级间接索引,所以选择C选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值