【软考备考】文件管理详解:i-node 混合索引与位示图,操作系统收官篇(附 10 道练习)

【软考备考】文件管理详解:i-node 混合索引与位示图,操作系统收官篇(附 10 道练习)
操作系统最后一篇讲文件管理。这块上午题的计算点就两个但都是会者一分钟、不会者瞪半天的典型索引节点i-node直接索引、一级间接、二级间接算单个文件最大长度或反推第 N 个字节走哪级索引位示图一个比特管一个磁盘块算块号对应的第几字第几位。一、文件怎么存从数组到目录页文件存在磁盘上最简单的办法是连续分配一个文件占一串连续的块。像数组——访问快但用久了磁盘全是碎片文件想变大还得看后面有没有地方。更好的办法是索引分配文件的数据块随便放另建一张块号清单记录它们的位置。这就像书的目录页——正文数据块顺序无所谓目录索引告诉你要的内容在第几页。想看文件第 100 块查清单第 100 项直接定位随机访问飞快。这张清单连同文件的属性大小、权限、时间……合在一起就是索引节点 i-node每个文件一个 i-node相当于文件的身份证 藏宝图。二、混合索引结构小文件走近路大文件走远路问题来了清单地址项放在 i-node 里i-node 大小有限地址项也就那么几个。文件小还好文件要是几十万块几个地址项哪够解决方案是混合索引——i-node 里的地址项分三种角色i-node ┌────────────┐ │ 文件属性 │ ├────────────┤ │ 直接[0] ───┼──→ 数据块 指哪是哪 │ 直接[1] ───┼──→ 数据块 │ …… │ │ 一级间接 ───┼──→ 索引块 ──→ 一批数据块 拐一道弯 │ 二级间接 ───┼──→ 索引块 ──→ 一批索引块 ──→ 一大批数据块拐两道弯 └────────────┘直接索引地址项直接指向数据块指哪是哪一级间接地址项指向一个索引块索引块里装满数据块地址——一个地址项撬动几百个块二级间接再拐一道弯索引块指向一批索引块——撬动平方级数量。计算的命门只有一个数字一个索引块能装多少个地址每块地址数 块大小 ÷ 地址长度例块 1KB1024B、地址占 4B → 1024 ÷ 4 256 个地址/块。例题真题风格i-node 有 5 个直接地址项、1 个一级间接项、1 个二级间接项块 1KB、地址 4B求单个文件最大长度。直接索引5 块 → 5 KB 一级间接256 块 → 256 KB 二级间接256 × 256 65536 块 → 65536 KB 64 MB ───────────────────────────────── 合计5 256 65536 65797 块 65797 KB ≈ 64.26 MB看出来了吗二级间接是绝对主力直接索引那 5 块只是零头——但考试最爱在零头上挖坑见练习题第 8 题。三、反向题第 N 个字节走哪级索引正着会算反着也要会查。套路三步逻辑块号 文件偏移 ÷ 块大小整除算出各级索引的覆盖范围对号入座。沿用上例5 直接 1 一级 1 二级块 1KB直接索引覆盖块 0 4 5 块 一级间接覆盖块 5 260 256 块 二级间接覆盖块 261 65796 65536 块例访问文件偏移300KB处的内容。逻辑块号 300KB ÷ 1KB 300。300 超出了一级间接的 260 上限 → 走二级间接。四、位示图一个比特管一块管理磁盘空闲块的极简方案拿一串二进制位每位对应一个磁盘块比如 0 表示空闲、1 表示占用具体约定看题目。这串位就是位示图存放在若干个字里。两个方向的换算设字长 w字号、位号、块号均从 0 开始块号 → 位置字号 块号 ÷ w整除位号 块号 mod w 位置 → 块号块号 字号 × w 位号 位示图大小 总块数 ÷ w向上取整字例字长 16 位块号 53 → 53 ÷ 16 3 余 5 →第 3 字第 5 位。唯一的坑编号从 0 还是从 1 开始直接决定答案。软考真题多为从 0 开始但题目怎么约定就怎么算审题时先把这三个编号的起点圈出来。五、10 道练习题基础题1~51.索引节点i-node中存放的是 。A. 文件内容本身 B. 用户的登录口令 C. 进程的运行信息 D. 文件的属性及数据块地址等元数据2.某文件系统的 i-node 中有 8 个直接地址项磁盘块大小为 1KB仅通过直接索引可表示的文件最大长度为 。A. 8KB B. 1KB C. 64KB D. 8MB3.磁盘块大小为 1KB每个块地址占 4B则一个索引块可存放的块地址数量为 。A. 512 B. 1024 C. 256 D. 44.位示图在文件系统中的作用是 。A. 记录文件内容 B. 管理磁盘空闲块每一位对应一个磁盘块 C. 保存文件属性 D. 加快目录检索5.某磁盘共有 8192 个盘块采用位示图管理字长 32 位则位示图需要占用 个字。A. 256 B. 8192 C. 32 D. 512进阶题6~10带坑6.块大小 1KB、块地址占 4Bi-node 中有 1 个一级间接地址项通过它可索引的文件长度为 。A. 1KB B. 256KB C. 64MB D. 4KB7.同上题条件i-node 中有 1 个二级间接地址项通过它可索引的文件长度为 。A. 256KB B. 512KB C. 16MB D. 64MB8.某 i-node 有 5 个直接地址项、1 个一级间接项、1 个二级间接项块大小 1KB、地址占 4B则单个文件的最大长度为 。A. 65797KB B. 64MB C. 65792KB D. 256KB9.同上题的 i-node 结构要访问文件偏移 300KB 处的内容应通过 。A. 直接索引 B. 一级间接索引 C. 二级间接索引 D. 无法访问10.某系统用位示图管理磁盘块字长 16 位字号、位号、块号均从 0 开始编号则块号 53 对应位示图的 。A. 第 5 字第 3 位 B. 第 4 字第 6 位 C. 第 3 字第 5 位 D. 第 3 字第 4 位六、答案与详解1. Di-node 文件的身份证 藏宝图属性 数据块地址元数据。文件内容在数据块里不在 i-node 里——选 A 的是把图和宝搞混了。2. A直接索引一项一块8 × 1KB 8KB。3. C命门公式1024 ÷ 4 256 个地址/块。这个数字是后三题的全部基础。4. B位示图管的是磁盘空闲块一位一块。和 i-node 分工不同i-node 管这个文件的块在哪位示图管哪些块还空着。5. A8192 ÷ 32 256 字。整除正好不用向上取整。6. B一级间接一个索引块装 256 个地址 → 256 块 × 1KB 256KB。7. D二级间接256 个地址各指一个索引块每个索引块再装 256 个地址 → 256² 65536 块 65536KB 64MB。注意是平方不是乘 2——选 B512KB的就是错算成 256×2。8. A本题大坑5 256 65536 65797 块 65797KB。选 C65792KB的把直接索引那 5 块漏了——平时说约 64MB可以精确计算零头必须加上选 B 的只算了二级间接。9. C三步走逻辑块号 300KB ÷ 1KB 300直接覆盖 0~4一级覆盖 5~260300 260 →二级间接。坑选 B 的只记得一级间接能管 256 块忘了它的起点是第 5 块——覆盖范围是 5~260不是 0~255。10. C53 ÷ 16 3 余 5 →第 3 字第 5 位。选 D 的是按从 1 开始编号的思维把余数减了 1——本题明确从 0 开始审题先圈编号起点从 0 还是从 1一字之差答案全变。七、五句话带走i-node 属性 块地址清单索引分配就像书的目录页命门数字每块地址数 块大小 ÷ 地址长度常考 256直接 n 块、一级 256 块、二级 256² 块最大长度别漏直接索引的零头反向定位偏移 ÷ 块大小 逻辑块号注意各级覆盖范围的起点位示图字号 块号 ÷ 字长位号 块号 mod 字长先圈编号起点0 还是 1。至此操作系统高频考点全部通关PV 操作、死锁、存储管理、文件管理。加上之前的计算机组成原理六篇上午题最硬的两大模块已经拿下。下一篇预告开进新大陆——数据库。三级模式两级映像、ER 图转关系模式、关系代数的并交差笛卡尔积、以及下午题年年见的范式判断1NF/2NF/3NF/BCNF。数据库是上午下午两头都考的大户值得好好打。