26 文件外存分配方式

作者: saviochen | 来源:发表于2017-06-23 20:03 被阅读46次

磁盘具有可直接访问的特性,故当利用磁盘存放文件时,具有很大的灵活性。

目前,常用的外存分配方法有连续分配链接分配索引分配三种。采用不同的分配方式时,将形成不同的文件物理结构。

连续分配方式对应顺序式文件结构,链接分配方式形成链接式文件结构,索引分配方式将形成索引式文件结构。有的系统(如DOS操作系统)对三种方法都支持,但是更普遍的是一个系统只提供一种方法的支持

1 连续分配

连续分配方法要求每个文件在磁盘上占有一组连续的块,如图所示。这样所形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。这种分配方式保证了逻辑文件中的的记录顺序与存储器中的文件占用盘块的顺序是一致的

优点

优点是实现简单、存取速度快,支持顺序访问和直接访问,作业访问磁盘时需要的寻道数和寻道时间最短。

缺点

缺点在于,文件长度不宜动态增加,因为一个文件末尾后的盘块可能已经分配给其他文件,一旦需要增加, 就需要大量移动盘块。在外存上使用紧凑技术所花费的时间远比内存紧凑一次所花费的时间多得多。

此外,反复增删文件后会产生外部碎片(与内存管理分配方式中的碎 片相似),并且很难确定一个文件需要的空间大小,因而只适用于长度固定的文件。

2 链接分配

链接分配是釆取离散分配的方式,消除了外部碎片,故而显著地提高了磁盘空间的利用率;又因为是根据文件的当前需求,为它分配必需的盘块,当文件动态增长时,可以动态地再为它分配盘块,故而无需事先知道文件的大小。此外,对文件的增、删、改也非常方便

链接分配又可以分为隐式链接和显式链接两种形式。

2.1 隐式链接

文件,目录中每个目录项都包括指向链接文件第一盘块和最后一个盘块的指针。磁盘块分布在磁盘的任何地方,除最后一个盘块外,每一个盘块都有指向下一个盘块的指针,这些指针对用户是透明的。

缺点
  • 隐式链接只适用于顺序访问,对随机访问时极其低效的。

  • 隐式链接可靠性差,只要其中任一指针出错,都将导致整个链断开。

为了提高检索速度和减小指针所占存储空间,可以将几个盘块组成一个簇(cluster),虽然成倍减少了访问时间,以及指针存储空间,但却增大了内部碎片,改进很有限

2.2 显式链接

显示链接把用于链接文件各物理块的指针,显示地存放在内存的一张链接表中。该表在整个磁盘仅设置一张。

表的序号从0开始,直至N-1,N为盘块总数,在每个表项中存放链接指针,即下一个盘块号。

在该表中,凡是属于某一文件的第一个盘块号(链首指针所对应的盘块号)均作为文件地址被填入相应的文件的FCB的物理地址字段中。

由于查找记录的过程是在内存中进行的,因而提高了检索速度,减少了访问磁盘的次数。由于分配给文件的所有盘块号都在该表中,故把该表称为文件分配表FAT(File Allocation Table)。

缺点
  • 不能支持高效的直接存储(要对一个较大的文件进行直接存取,须首先在FAT中顺序地查找很多盘块号);

  • FAT需要占用较大的内存空间(由于一个文件所占用的盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT调入内存,才能保证FAT中找到一个文件的所有盘块号,当磁盘容量较大时,FAT占用的容量更大)

3 索引分配

在打开某个文件时,只需把该文件占用的盘块号的编号调入内存即可,无需把整个FAT调入内存。为此,将每个文件所对应的盘块号集中地放在一起,索引分配方式就是基于此想法所形成的一种分配方式。

3.1 单级索引

其为每个文件分配一个索引表,再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多磁盘块号的数组。在建立一个文件时,只需要在为之建立的目录项中填上指向该索引块的指针。

3.2 多级索引

当文件太大时,索引块太多,单级索引是低效的。此时,为这些索引块再建立一级索引,称为第一级索引,还可再建立索引,称为第二级索引等等。称为多级索引分配。

在二级索引分配方式下,若每个盘块的大小为1KB,每个盘块号占4个字节,在一个索引块可以存放256个盘块号。则,在两级索引时,最多可以包括存放文件的盘块号总数为64K(256 * 256)个盘块号,所允许文件最大长度为64MB。

若盘块号为4KB,则一级索引的最大文件大小为4MB,二级索引的最大文件大小为4GB。

3.3 混合索引分配

多种索引分配方式相结合而形成的一种分配方式,如直接地址,一次间接地址,多次间接地址。

Unix SystemV的分配采用了三级索引分配方式。共设置了13个索引地址项。前10个:iaddr(0)~iaddr(9)为直接地址项,iaddr(10)为一次间接地址项,iaddr(11)为二次间接地址项,iaddr(12)为三次间接地址项。

4 分配方式比较

相关文章

  • 26 文件外存分配方式

    磁盘具有可直接访问的特性,故当利用磁盘存放文件时,具有很大的灵活性。 目前,常用的外存分配方法有连续分配、链接分配...

  • 第七章 文件管理

    一、概述 文件的逻辑结构 ( 顺序文件,索引文件,索引顺序文件,直接文件和哈希文件 ) 外存分配方式 文件目录管理...

  • 空闲区管理方法

    1.空闲区表法 空闲表法属于连续分配方式。它与内存管理中的动态分区分配方式雷同。 将外存空间上一个连续未分配区域称...

  • C/C++模拟操作系统文件操作

    效果图 基本要求 利用磁盘文件实现操作系统的文件管理功能,主要包括目录结构的管理、外存空间的分配与释放以及空闲空间...

  • 操作系统概念--读书笔记之第十章文件系统接口

    1 文件概念 概念文件是记录在外存上的相关信息的具有名称的集合。文件是逻辑外存的最小单元。 文件外部结构因为文件类...

  • 文件存储空间管理

    前言 上篇文章介绍了文件的物理结构并介绍了文件分配的三种方式——连续分配、链接分配和索引分配。本文介绍操作系统对文...

  • 28 文件存储空间管理

    文件存储空间分配方法与内存分配有许多相同之处,即同样采用连续或离散分配方式。文件存储空间的分配单位是磁盘块而不是字...

  • 文件的物理结构(文件分配方式)

    前言 操作系统需要对磁盘块进行管理,这涉及两个方面,一方面是对非空闲磁盘块的管理(存放了文件数据的磁盘块),这是文...

  • 第一章 操作系统概述(1)

    1.1 框架 进程管理(cpu) 存储管理(内存) I/O 管理(设备) 文件管理(文件,外存) 1.2 操作系统...

  • 外存管理与文件系统

    第99篇 极客时间《许式伟的架构课》课程笔记。 外存的分类(依据功能特性) 顺序读写型 典型产品:磁带 应用场景:...

网友评论

    本文标题:26 文件外存分配方式

    本文链接:https://www.haomeiwen.com/subject/jikqcxtx.html