OS(十三):文件管理之 外存分配方式
文件分配外存空间时所要考虑的主要问题是:怎样才能有效地利用外存空间和如何提高对文件的访问速度。
外存分配方式有连续分配、链接分配和索引分配。
文件的物理结构直接与外存分配方式有关,采用不同的分配方式时,将形成不同的文件物理结构。
1、连续分配
1.1、连续分配方式
连续分配要求为每一个文件分配一组相邻接的盘块,一组盘块的地址定义了磁盘上的一段线性地址。
盘块位于一条磁道上,进行读/写时,不必移动磁头,仅当访问到一条磁道的最后一个盘块后,才需要移到下一条磁道,于是又去连续的读/写多个盘块。
连续分配方式时,把逻辑文件中的记录顺序的存储到邻接的各物理盘块中,形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。
连续分配保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。
系统可通过目录项的"文件物理地址"字段,记录该文件第一个记录所在的盘块号和文件长度。
1.2、优缺点
1.2.1、优点
顺序访问容易,系统从目录中找到该顺序文件所在的第一个盘块号,从此开始顺序的、逐个的盘块往西读/写,连续分配支持直接存取。
顺序访问速度快,连续分配所装入的文件,占用的盘块可能是位于一条或几条相邻的磁道上,此时,磁头的移动举例最少。
1.2.2、缺点
要求有连续的存储空间,每一个文件分配一个连续存储空间,会产生外部碎片;
需事先知道文件的长度,根据其大小,在存储空间中找出一块大小足够的存储区,将文件装入
2、链接分配
连续分配存在的问题:必须为一个文件分配连续的磁盘空间。
链接分配:通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,形成的纹理文件称为链接文件。
链接分配采用离散分配方式,消除了外碎片,提高了外存空间的利用率。
链接方式分为 隐式链接 和 显示链接 两种形式。
2.1、隐式链接
隐式链接分配方式:在文件目录的每个目录项中,都须含有指向链接文件的第一个盘块和最后一个盘块的指针。
隐式链接分配方式问题在于:只适合顺序访问,对随机访问的效率低下。
2.2、显示链接
显示链接用于连接文件个物理块的指针,显示的存放在内存的一张链接表中,该表在整个磁盘仅设置一张。
在该表中,每一条链的链首指针所对应的盘块号,均作为文件地址被填入响应文件的 FCB 的 物理地址 字段中,
由于分配给文件的所有盘块都放在该表中,该表称为文件分配表(FAT File Allocation Table)。
3、索引分配
3.1、单级索引分配
3.1.1、链式分配方式缺点
链式分配方式解决了连续分配方式存在的问题,但链式分配方式存在以下问题:
不能支持高效的直接存取;
FAT需占用较大的内存空间,因一个文件所占用的盘块的盘块号是随机地分配分布在FAT中,因而只有将整个FAT调入内存,才能保证在FAT中找到一个文件的所有盘块号。
3.1.2.索引分配方式
索引分配:为每个文件分配一个索引块(表),再把分配给文件的所有盘块号都记录在该索引块中,因而索引块就是一个含有许多盘块号的数组。
在建立一个文件时,只需为之建立的目录项中填上指向该索引块的指针。
3.1.3、优缺点
索引分配方式支持直接访问,当文件较大时,索引分配方式优于链接分配方式。
索引分配方式的主要问题:需要花费较多的外存空间,每当建立一个文件,便要为之分配一个索引块,将分配给该文件的所有盘块号记录其中。
3.2、多级索引分配
多级索引分配针对大文件。
为一个大文件分配磁盘空间,若分配出去的盘块号已装满一个索引块时,OS便为该文件分配另一个索引块,用于将以后继续为之分配的盘块号记录于其中,通过链指针将个索引块按序链接起来。
两级索引分配方式下各索引块的链接情况:
3.3、混合索引分配
混合索引分配方式,将多种索引分配方式相结合而形成的一种分配方式。
3.3.1、直接地址
每项存放的是该文件数据所在盘块的盘块号。
3.3.2、简接地址
每项存放的是索引节点中的地址项。