《探究文件物理存储结构的三种方式》
一、连续分配
连续分配是文件物理存储结构中较为直观的一种方式,在这种方式下,文件被存储在磁盘的连续扇区中。
1、原理
- 当创建一个文件时,系统会为其分配一块连续的磁盘空间,假设磁盘被划分为多个扇区,若要存储一个文件,系统会从磁盘上找到足够容纳该文件大小的连续扇区块,如果文件大小为10个扇区大小,系统就会找到连续的10个扇区来存储这个文件。
图片来源于网络,如有侵权联系删除
- 这种方式下,文件的逻辑地址与物理地址之间的转换非常简单,因为文件在磁盘上是连续存储的,所以只需要知道文件的起始物理地址和文件的长度,就可以很容易地计算出文件中任何一个逻辑块对应的物理块,若文件的起始物理地址是磁盘的第100扇区,文件长度为20扇区,那么文件的第5个逻辑块对应的物理块就是第100 + 5 = 105扇区。
2、优点
- 顺序访问速度快,对于顺序访问的文件,如音频、视频文件等,由于文件数据在磁盘上是连续存放的,磁头可以按照顺序依次读取扇区,减少了磁头寻道时间。
- 实现简单,不需要复杂的地址映射表来管理文件的存储位置,节省了系统资源。
3、缺点
- 磁盘空间利用率低,如果文件大小不是磁盘块大小的整数倍,那么最后一个磁盘块可能会有部分空间未被利用,造成内部碎片,如果频繁地创建和删除文件,磁盘上会产生很多小的空闲块,难以找到足够大的连续空闲块来存储大型文件。
- 文件扩展困难,当文件需要扩展时,如果其相邻的磁盘块已经被其他文件占用,就需要将整个文件移动到新的连续空间,这是一个非常耗时的操作。
二、链接分配
链接分配分为隐式链接和显式链接两种情况。
1、隐式链接
原理
- 在隐式链接方式中,每个磁盘块都有一个指针指向下一个磁盘块,文件中的各个磁盘块通过这些指针链接成一个链表,文件的目录项中只记录了文件的第一个磁盘块的地址,一个文件由3个磁盘块组成,第一个磁盘块的地址存放在文件目录项中,第一个磁盘块中有一个指针指向第二个磁盘块,第二个磁盘块又有一个指针指向第三个磁盘块。
图片来源于网络,如有侵权联系删除
优点
- 磁盘空间利用率高,不存在连续分配中的内部碎片问题,因为文件可以分散存储在磁盘的各个空闲块中。
- 文件扩展方便,当文件需要扩展时,只需要找到空闲磁盘块,然后将新的磁盘块链接到文件的末尾即可。
缺点
- 随机访问效率低,如果要访问文件中的某个特定块,需要从文件的起始块开始,沿着指针链依次查找,这会导致大量的磁盘I/O操作。
- 可靠性较差,因为文件是通过指针链来连接各个磁盘块的,如果指针被破坏,例如由于磁盘故障或者软件错误,可能会导致文件部分甚至全部无法访问。
2、显式链接
原理
- 显式链接是将所有磁盘块的链接信息存放在一张单独的表中,这个表称为文件分配表(FAT),文件分配表中每个表项对应一个磁盘块,表项中记录了下一个磁盘块的地址,文件的目录项中仍然只记录文件的起始磁盘块地址,通过查询文件分配表就可以找到文件的其他磁盘块。
优点
- 相对于隐式链接,显式链接在一定程度上提高了随机访问的速度,因为可以直接查询文件分配表来获取磁盘块的链接信息,而不需要依次读取每个磁盘块中的指针。
缺点
图片来源于网络,如有侵权联系删除
- 文件分配表需要占用一定的磁盘空间,如果文件分配表遭到破坏,会影响到多个文件的正常访问。
三、索引分配
1、原理
- 在索引分配方式中,系统为每个文件建立一个索引表,索引表中的每个表项记录了文件中一个逻辑块对应的物理块地址,文件的目录项中存放了索引表的地址,一个文件有5个逻辑块,索引表中有5个表项,分别记录这5个逻辑块对应的物理磁盘块地址。
2、优点
- 支持直接访问,无论是顺序访问还是随机访问,都可以通过查询索引表快速定位到文件中的任何一个逻辑块对应的物理块,大大提高了文件访问的速度。
- 没有外部碎片,文件可以根据索引表分散存储在磁盘的空闲块中,不会像连续分配那样由于文件删除等原因产生外部碎片。
3、缺点
- 索引表本身需要占用磁盘空间,当文件很小时,索引表的空间开销相对较大,会降低磁盘空间利用率。
- 索引表的管理较为复杂,如果索引表遭到破坏,文件将无法正常访问,并且在文件修改时,索引表也需要相应地更新。
评论列表