2026-46
某基于索引节点(inode)的文件系统的目录项由文件名和索引节点号构成。磁盘中存放了索引节点表、位图、目录等元数据以及文件数据,盘块大小为 4 KB,盘块号占 4 B。索引节点表包含了所有文件的索引节点,位于从 100 号盘块开始的 4096 个连续盘块中,索引节点号是索引节点在该表中的序号,从 0 开始编号。每个索引节点占 128 B,包含直接地址项 5 个,一次间接地址项、二次间接地址项、三次间接地址项各 1 个。磁盘块位图和索引节点位图分别用于描述磁盘块和索引节点占用情况,0 表示未占用,1 表示已占用。某子目录树如题 46 图所示,其中各文件的文件名和索引节点号如题 46 表所示,file 大小为 30 KB。
题 46 表
| 文件名 | 索引节点号 |
|---|---|
| dir | 100 |
| dir1 | 201 |
| file | 1000 |
请回答下列问题。
(1)file 的索引节点存放在磁盘的几号盘块中?若 file 的索引节点已读入内存,则访问 file 中偏移地址为 21460 的一个字节数据,最多需要访问几个盘块?该文件系统在空间足够大的磁盘中最多能创建多少个文件?(3 分)
(2)若要删除目录 dir1,则文件系统需要对哪些元数据执行哪些操作?(5 分)

小程序中我的-账号中心-隐私与账号可绑定网页端账号
(1)file 的索引节点存放在磁盘的 ≤ft⌊10004096/128⌋+100=131 号盘块中。访问 file 中偏移地址为 21460 的一个字节数据,最多需要访问 2 个盘块。该文件系统在足够大的磁盘中最多能创建 4096×(4096/128)=128K=131072 个文件。
(2)将盘块位图中 dir1 占用的盘块所对应的位修改为 0,将盘块位图中 file 占用的盘块所对应的位修改为 0,将盘块位图中 file 索引节点中的一次间接地址指向的盘块所对应的位修改为 0,将索引节点位图中 dir1 的索引节点(201)所对应的位修改为 0,将索引节点位图中 file 的索引节点(1000)所对应的位修改为 0,删除目录文件 dir 中与 dir1 对应的目录项。