如题:2019年10月

分析:在<操作系统考点之文件系统要点总结及目录分解法>中有目录的平均访盘次数的计算,思路上倒是可以借鉴一下。先计算每个磁盘块放几个目录项,再计算目录文件分几个磁盘块存储,占用一个磁盘块,需要读一次,两个就需要读两次,平均访盘次数就是(1+2+..n)/n=(n+1)/2。但这里并没有直接考的目录而是考的混合索引。

题中,直接地址索引,直接指向数据块地址。

          一级间接索引(即题中的一重间接地址)指向的是单层索引表。

         两级间接索引(二重间接地址)指向的是两层索引表。

索引表重要特征就是一个索引表项可以表示上一层大小的数据。如一个磁盘块大小是1K,一个索引表项占4B,(由此可得出一个磁盘块可存256个索引表项)假如采用单层索引,有256个索引项,上一层是直接地址索引,则可表示 256 个数据,若两层索引具体的含义是256个一层索引,所以是256 * 256 的数据。

知道这些,套到题目中就可以了,分析如下:还有一点很重要,字节偏移量,其实还是指的逻辑上的偏移地址,这里要与扩展中变相考的题型中管理文件的大小相区分。管理文件的大小要乘以物理块的大小。

13个地址,10个是直接地址,1个地址是一重间接地址(到这里应脑补出13个地址框,10个直接就是数据地址,1个地址是存放一个单层索引表),如下图所示:

这里应该想到这个索引表有几项索引项??因为一重间接索引表里每个索引项就是存的“直接数据的地址”,所以只需要知道几个索引项,就存了几个数据地址。题目告诉了每个磁盘块地址占8个字节,而每个磁盘块大小是2048个字节,所以一个磁盘块存了2048/8=256个数据地址。

下面一个地址是二重间接地址,1、确定二重索引表放的是一重索引表的大小的数据(还是上一层数据的大小,一重索引表有多大呢?上面求了是256)  2、确定有多少个索引项,只有占一个地址项(代表一个磁盘块的地址,这个磁盘块照样可以存放256个地址,并且还是“一级索引的地址”),而一个一重索引表(有256个索引项),所以可以表示256*256的数据地址。

而文件1260000在第几个磁盘块呢?1260000/2048=615个中。可见,上面的二重间接地址表示的范围远远大于这个值了,应该就在二重地址索引表中。具体在哪个块中呢??

直接寻址占10个数据地址,这里是逻辑地址,需要对应到物理地址(也就是磁盘块地址,并且磁盘块大小与内存的页框大小一样),尽管远远小于一个磁盘块的大小,但由于是直接寻址所以还是需要访问一次磁盘,所以 615-10=605

一重间接占256个数据地址,所以 605 -256 = 349,所以,正好是一个磁盘块的容量,肯定是要访问一次磁盘

二重占用256个一重间接,访问第一块磁盘块时,349-256=93,访问一次磁盘,文件的地址在第2块磁盘块,还要再访问一次磁盘。所以共需要访问4次磁盘。

参考答案,如下所示:实在没有思路,就按照题目给出的条件写出分析过程,多少能拿两分。

 

扩展:

变相考的题型:如2019年4月

分析:这里问的是管理的单个文件最大长度,指的是占用物理块的大小

10个直接地址代表10个物理块地址,一个物理块大小为2K,所以大小是10 *2k=20K

1个间接,256*2K=512k

1个二重间接,256*256*2k=128M

1个三重间接,256*(256*256*2k)=256 *128M=32768M/1024=32G

最大所有的这些加起来。

 

Logo

鸿蒙生态一站式服务平台。

更多推荐