由于磁盘具有可直接访问的特性,故当利用磁盘来存放文件时,具有很大的灵活性。和之前内存分配所要考虑的主要问题一样:怎样才能有效地利用外存空间和如何提高对文件的访问速度。
连续分配要求为每一个文件分配一组相邻接的盘块。一组盘块的 地址定义了磁盘上的一段线性地址。在采用连续分配方式时,可把逻辑文件中的记录顺序地存储到邻接的 各物理盘块中,这样所形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。这种分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。为 使系统能找到文件存放的地址,应在目录项的“文件物理地址”字段中,记录该文件第一 个记录所在的盘块号和文件长度。
连续分配具有顺序访问容易,访问一个占有连续空间的文件非常容易。 顺序访问速度快。因为由连续分配所装入的文件,其所占用的盘块可能是位于一条 或几条相邻的磁道上,磁头的移动距离最少。缺点则是 要求有连续的存储空间,会产生许多外部碎片。必须事先知道文件的长度。要将一个文件装入一个连续的存储区中,必须事先知道 文件的大小,然后根据其大小,在存储空间中找出一块其大小足够的存储区。
如同内存管理一样,连续分配所存在的问题就在于: 必须为一个文件分配连续的磁盘空间。链接分配是采取离散分配方式,消除了外部碎片。链接方式又可分为隐式链接和显式链接两种形式。在采用隐式链接分配方式时,在文件目录的每个目录项中,都须含有指向链接文件第 一个盘块和最后一个盘块的指针。显式链接 这是指把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。
链接分配方式虽然解决了连续分配方式所存在的问题,但又出现了下述另外两个问题:不能支持高效的直接存取。FAT 需占用较大的内存空间。索引分配方式支持直接访问。当要读文件的第 i 个盘块时,可以方便地直接从索引块中 找到第 i 个盘块的盘块号;此外,索引分配方式也不会产生外部碎片。当文件较大时,索引 分配方式无疑要优于链接分配方式。