物理块111只有32个表项啊
时间: 2023-08-07 18:07:01 浏览: 76
非常抱歉,我在之前的回答中犯了一个错误。物理块111只有32个表项。
因此,为了打开文件file,需要启动2次磁盘。
第一次启动磁盘,需要读取物理块111,以获取文件名目录中第34个目录项的信息。因为每个目录项占用16B,所以第34个目录项的起始地址为111号物理块的偏移量为(34-1) * 16 = 528B。由于文件名目录的每个表项占用16B,物理块111中只有32个表项,因此第34个目录项不在物理块111中,而是在下一个物理块中。假设下一个表项所在的物理块为112,则需要再启动一次磁盘读取物理块112,以获取第34个目录项的信息。在该目录项中,存储了文件file对应的索引节点号64。
第二次启动磁盘,需要读取物理块2,以获取索引节点号为64的索引节点信息。因为每个索引节点占用64B,所以索引节点64的起始地址为2号物理块的偏移量为(64-1) * 64 = 4032B。在该索引节点中,存储了文件file的数据块地址信息。
因为文件file是顺序文件,所以可以通过索引节点中的块地址信息按顺序读取文件的数据块。具体来说,如果文件file有n个数据块,则需要启动n次磁盘,每次读取对应的数据块物理块即可。
相关问题
一个文件系统基于索引节点的组织方式,假设物理块长为512B。 (1 )文件名目录的每个表项占用16B ,文件目录从物理块111号开始存放;(2)索引节点占用64B,索引节点区从物理块2号开始存放; ( 3 )假设索引节点编号是从1到某个最大值,现有文件file为顺序文件, file位于文件名目录的第34个目录项中,它对应的索引节点号为64。为打开文件file需要启动几次磁盘,每次所读的物理块号是什么?请说明原因。
为了打开文件file,需要启动两次磁盘。第一次磁盘启动,读取文件名目录表项,确定文件file的索引节点号为64。第二次磁盘启动,读取索引节点区中的第64个索引节点,获取文件file的物理块地址。
具体地,第一次磁盘启动需要读取物理块111号,因为文件名目录从该物理块开始存放。由于每个文件名目录表项占用16B,文件file对应的表项在第34个位置,因此需要读取物理块113号的第2个表项和物理块114号的第1个表项,才能确定文件file的索引节点号为64。
第二次磁盘启动需要读取物理块6号,因为索引节点区从该物理块开始存放。由于每个索引节点占用64B,因此第64个索引节点所在的物理块为物理块2号+(64-1)/8=10号。因为文件file是顺序文件,所以它只有一个直接块指针,存放在索引节点的第0个位置,因此需要读取物理块10号的第0个位置,即物理块10号,才能获取文件file的物理块地址。
25.假设在一个文件系统中,物理块的大小为512B,文件控制块( FCB )占用48B。如果把 FCB 分解成两个部分:符号目录项占8B(其中文件名占用6B, inode 号占用2B);基本目录项 inode 占用 48-8=40B。试计算不分解 FCB 和分解 FCB 时,查找一个文件的平均访问磁盘次数。
不分解 FCB 时,一个文件的 FCB 占用一个物理块,因此每次访问一个文件都需要读取一次磁盘块。假设文件系统中有 N 个文件,则查找一个文件的平均访问磁盘次数为 N。
分解 FCB 后,符号目录项和基本目录项 inode 存储在不同的物理块中。假设符号目录项和基本目录项 inode 分别占用一个物理块,则查找一个文件需要读取两次磁盘块。但是符号目录项可以缓存在内存中,只有第一次访问某个目录时需要读取符号目录项所在的磁盘块。假设文件系统中有 M 个目录,则每个目录中平均有 K 个文件,则查找一个文件的平均访问磁盘次数为:
```
M + N/K
```
注:N/K 表示每个目录平均包含的文件数量。
阅读全文