目前,常用的外存分配方法有 连续分配 、 链接分配 和 索引分配 三种。采用不同的分配方式时,将形成不同的文件物理结构。
连续分配方式对应顺序式文件结构,链接分配方式形成链接式文件结构,索引分配方式将形成索引式文件结构。有的系统(如DOS *** 作系统)对三种方法都支持,但是更普遍的是 一个系统只提供一种方法的支持 。
连续分配方法要求每个文件在磁盘上占有一组连续的块,如图所示。这样所形成的文件结构称为 顺序文件结构 ,此时的物理文件称为 顺序文件 。这种分配方式保证了逻辑文件中的的记录顺序与存储器中的文件占用盘块的顺序是 一致的 。
优点是 实现简单、存取速度快 ,支持顺序访问和直接访问,作业访问磁盘时需要的寻道数和寻道时间最短。
缺点在于,文件长度 不宜动态增加 ,因为一个文件末尾后的盘块可能已经分配给其他文件,一旦需要增加, 就需要大量移动盘块。在外存上使用紧凑技术所花费的时间远比内存紧凑一次所花费的时间多得多。
此外,反复增删文件后会产生 外部碎片 (与内存管理分配方式中的碎 片相似),并且很难确定一个文件需要的空间大小,因而只适用于长度固定的文件。
链接分配是釆取 离散分配 的方式,消除了外部碎片,故而显著地 提高了磁盘空间的利用率 ;又因为是根据文件的当前需求,为它分配必需的盘块,当文件动态增长时,可以动态地再为它分配盘块,故而 无需事先知道文件的大小 。此外,对文件的 增、删、改也非常方便 。
链接分配又可以分为隐式链接和显式链接两种形式。
文件,目录中每个目录项都包括 指向链接文件第一盘块和最后一个盘块的指针 。磁盘块分布在磁盘的任何地方,除最后一个盘块外,每一个盘块都有指向下一个盘块的指针,这些指针对用户是透明的。
为了提高检索速度和减小指针所占存储空间,可以将几个盘块组成一个簇(cluster),虽然成倍 减少了访问时间,以及指针存储空间,但却增大了内部碎片,改进很有限 。
显示链接把用于链接文件各物理块的指针,显示地存放在内存的一张链接表中。该表在整个磁盘仅设置一张。
表的序号从0开始,直至N-1,N为盘块总数,在每个表项中存放链接指针,即下一个盘块号。
在该表中,凡是属于某一文件的第一个盘块号(链首指针所对应的盘块号)均作为文件地址被填入相应的文件的FCB的物理地址字段中。
由于查找记录的过程是 在内存中进行的,因而提高了检索速度,减少了访问磁盘的次数 。由于分配给文件的所有盘块号都在该表中,故把该表称为文件分配表FAT(File Allocation Table)。
在打开某个文件时,只需把该文件占用的盘块号的编号调入内存即可, 无需把整个FAT调入内存 。为此,将每个文件所对应的盘块号集中地放在一起,索引分配方式就是基于此想法所形成的一种分配方式。
其为每个文件分配一个索引表,再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多磁盘块号的数组。在建立一个文件时,只需要在为之建立的目录项中填上指向该索引块的指针。
当文件太大时,索引块太多,单级索引是低效的 。此时,为这些索引块再建立一级索引,称为第一级索引,还可再建立索引,称为第二级索引等等。称为多级索引分配。
在二级索引分配方式下,若每个盘块的大小为1KB,每个盘块号占4个字节,在一个索引块可以存放256个盘块号。则,在两级索引时,最多可以包括存放文件的盘块号总数为64K(256 * 256)个盘块号,所允许文件最大长度为64MB。
若盘块号为4KB,则一级索引的最大文件大小为4MB,二级索引的最大文件大小为4GB。
将 多种索引分配方式相结合 而形成的一种分配方式,如直接地址,一次间接地址,多次间接地址。
Unix SystemV的分配采用了三级索引分配方式。共设置了13个索引地址项。前10个:iaddr(0)~iaddr(9)为直接地址项,iaddr(10)为一次间接地址项,iaddr(11)为二次间接地址项,iaddr(12)为三次间接地址项。
没有过期。国务院关于建立统一的企业职工基本养老保险制度的决定 国发[1997]26号(国务院1997年7月16日发布),是我国企业职工基本养老保险制度改革与发展的重要制度文件,也是我国社会养老保险制度发展的重大事件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)