题35

题目

某文件存放在 100 个数据块中, 假设管理文件所必需的文件控制块、索引块或索引信息都驻留在内存中。那么若 ( ) ,则不需要做任何磁盘 I/O 操作。
A. 采用连续分配, 将最后一个数据块搬到文件头部
B. 采用单级索引分配, 将最后一个数据块插入文件头部
C. 采用隐式链接分配, 将最后一个数据块插入文件头部
D. 采用隐式链接分配, 将第一个数据块插入文件尾部

分析

这还是一个数据结构的问题,分别对应,数据、哈希表还有这个链表
使用链表读第一个元素应该是没有开销的,但是这里的操作涉及了操作最后一个元素,链表要操作最后一个元素,肯定会涉及到要把整个链表读一遍的问题
这个B,也就是哈希表这种索引分配,只需要直接改表项,让指针指向新的位置,然后更新表项即可

B
采用连续分配时,将最后一个数据块搬到文件头部,要移动文件的物理块,需要磁盘 。 采用单级索引分配时, 将最后一个数据块插入文件头部, 由于索引块已驻留在内存中, 因此只需修改索引块,不需要磁盘 。采用隐式链接分配时,仅支持顺序访问,要修改文件数据块的顺序, 就必须修改对应磁盘块末尾的指针, 必须将文件块读入内存, 需要磁盘 I/O。