文件分配方式与文件存储管理方法

一.链接分配

1.1.隐式链接

    如同内存管理一样,连续分配所存在的问题就在于: 必须为一个文件分配连续的磁盘空间。如果在将一个逻辑文件存储到外存上时,并不要求为整个文件分配一块连续的空间,而是可以将文件装到多个离散的盘块中,这样也就可以消除上述缺点。在采用链接分配(Chained Allocation)方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。

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

   隐式链接分配方式的主要问题在于:它只适合于顺序访问,它对随机访问是极其低效的。如果要访问文件所在的第 i 个盘块,则必须先读出文件的第一个盘块……,就这样顺序地查找直至第 i 块。当 i=100 时,须启动 100 次磁盘去实现读盘块的操作,平均每次都要花费几十毫秒。可见,随机访问的速度相当低。此外,只通过链接指针来将一大批离散的盘块链接起来,其可靠性较差,因为只要其中的任何一个指针出现问题,都会导致整个链的断开。

   为了提高检索速度和减小指针所占用的存储空间,可以将几个盘块组成一个簇(cluster)。比如,一个簇可包含 4 个盘块,在进行盘块分配时,是以簇为单位进行的。在链接文件中的每个元素也是以簇为单位的。这样将会成倍地减小查找指定块的时间,而且也可减小指针所占用的存储空间,但却增大了内部碎片,而且这种改进也是非常有限的。

1.2.显式链接

    这是指把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。该表在整个磁盘仅设置一张,如下图所示。表的序号是物理盘块号,从 0 开始,直至 N-1;N 为盘块总数。在每个表项中存放链接指针,即下一个盘块号。在该表中,凡是属于某一文件的第一个盘块号,或者说是每一条链的链首指针所对应的盘块号,均作为文件地址被填入相应文件的 FCB 的“物理地址”字段中。由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表 FAT(File Allocation Table)。

1.3.FAT技术

【链接分配】解决了连续分配的外部碎片和文件大小管理问题

显式链接分配:把隐式文件中的指针单独抽离出来

介绍:把用于链接文件到各物理块的的指针现实的存放在一张表中,即【文件分配表FAT】。一个磁盘只会建立一张【文件分配表FAT】。开机时,文件分配表放入内存并常驻内存
优点:方便文件拓展;不会有碎片化问题;外存利用率高;支持随机访问;相比隐式,显式在转换地址时不需要访问磁盘,访问率超高
缺点:占用一定存储空间

隐式链接分配:采用类似链表的结构

  • 介绍:除文件最后一个盘块外,每个盘块中都会存有一个指向下一个盘快的指针,文件目录包括文件第一块的指针和最后一块的指针(像链表的结点)
  • 优点:方便文件拖长;不会有碎片化问题;外存利用率高
  • 缺点:只支持顺序访问,不支持随机访问,查找效率低;指向下一个盘块的指针也需要耗费销量的存储空闲

二.文件存储管理方法

一.空闲表法 

    空闲表法属于连续分配方式,与内存管理中的动态分区分配方式雷同。系统为外存上所有空闲区建立一张空闲表,记录每个空闲区的起始盘块号和盘块数。并可按首次适应、最佳适应等算法分配空闲区。

用一张表来记录磁盘中的空闲块,空间的回收和分配都只需要对该表进行操作即可 

二.空闲链表法

    将所有空闲盘区链接成一条空闲链表,有两种形式:空闲盘块链和空闲盘区链(每个盘区含若干个盘块)。

   空闲盘块链:

三.区位图法 

四.组成链接法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值