1文件的物理结构有哪些?分别有什么特点。
(1)连续分配支持顺序访问和直接访问。
其优点是实现简单,存取速度快。缺点是文件长度不宜动态增长,因为一个文件末尾后的盘块可能已分配给其他文件,一旦需要增加,就需要大量移动盘块。
此外,反复增删文件后会产生外部碎片(与内存管理分配方式中的碎片相似),且很难确定一个文件需要的空间大小,因而只适用于长度固定的文件。
(2)链式分配消除了外部碎片
链式分配是基于连续分配基础上做的改进。连续分配因为要求每个文件在磁盘上占有一组连续的块而容易产生外部碎片,链式分配就干脆采用离散分配的方式,消除外部碎片,显著提高磁盘空间的利用率。
此外,当文件动态增长时,可以动态地再为它分配盘块,因此无须事先知道文件的大小,增删改查也是十分方便。
(3)索引分配实现了随机访问。
链式分配虽然解决了连续分配的碎片问题和文件大小管理问题,链式分配是一级一级的,没有办法实现随机访问。
为了解决这个缺点,大家又发明了索引分配。
索引分配把每个文件的所有盘块号都集中放在一起构成索引块。
常言道,鱼和熊掌不可兼得,索引分配既消除了外部碎片,又实现了随机访问,那开销自然要大,不然没天理了。