考虑一个当前由100个块组成的文件。假设文件控制块(以及索引块,在索引分配的情况下)已经在内存中。如果对于一个块,满足以下条件,则计算连续、链接和索引(单级)分配策略需要多少磁盘I/O操作。在连续分配的情况下,假设一开始没有增长的空间,但最后有增长的空间。还假设要添加的块信息存储在存储器中。 a.在开始时添加块。 b.块添加在在中间。 c.在末尾添加块。 d.从一开始就移除块。 e.将块从中间移除。 f.将挡块从端部移除。
时间: 2024-01-24 10:20:19 浏览: 661
a. 在开始时添加块:
- 连续分配:需要进行100次磁盘I/O操作,因为需要将所有块都移动到后面。
- 链接分配:只需要进行1次磁盘I/O操作,因为只需修改新块的指针。
- 索引分配:只需要进行1次磁盘I/O操作,因为只需修改索引块的指针。
b. 块添加在中间:
- 连续分配:需要进行100次磁盘I/O操作,因为需要将添加块之后的所有块都移动到后面。
- 链接分配:需要进行2次磁盘I/O操作,因为需要修改新块和前一个块的指针。
- 索引分配:需要进行2次磁盘I/O操作,因为需要读取索引块和修改新块和前一个块的指针。
c. 在末尾添加块:
- 连续分配:只需要进行1次磁盘I/O操作,因为只需修改最后一个块的指针。
- 链接分配:只需要进行1次磁盘I/O操作,因为只需修改新块的指针。
- 索引分配:需要进行2次磁盘I/O操作,因为需要读取索引块和修改新块的指针。
d. 从一开始就移除块:
- 连续分配:需要进行100次磁盘I/O操作,因为需要将所有块都移动到前面。
- 链接分配:无法实现删除,因为无法访问前一个块的指针。
- 索引分配:需要进行2次磁盘I/O操作,因为需要读取索引块和修改要删除块的指针。
e. 将块从中间移除:
- 连续分配:需要进行100次磁盘I/O操作,因为需要将删除块之后的所有块都移动到前面。
- 链接分配:需要进行2次磁盘I/O操作,因为需要修改前一个块和后一个块的指针。
- 索引分配:需要进行2次磁盘I/O操作,因为需要读取索引块和修改前一个块和后一个块的指针。
f. 将块从端部移除:
- 连续分配:只需要进行1次磁盘I/O操作,因为只需修改最后一个块的指针。
- 链接分配:无法实现删除,因为无法访问前一个块的指针。
- 索引分配:需要进行2次磁盘I/O操作,因为需要读取索引块和修改要删除块的指针。
阅读全文