外存的组织方式
文件的物理结构直接与外存的组织方式有关。对于不同的外存组织方式,将形成不同的文件物理结构。(1) 连续组织方式。
又称连续分配方式,要求为每一个文件分配一组相邻接的盘块。把逻辑文件中的记录顺序地存储到邻接的各物理盘块中。
优点:
(1) 顺序访问容易。 (2) 顺序访问速度快。
缺点:
(1) 要求为一个文件分配连续的存储空间。 (2) 必须事先知道文件的长度。 (3) 不能灵活地删除和插入记录。 (4) 无法实现动态增长文件。
(2) 链接组织方式。
可为文件分配多个不连续的盘块,再通过每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表隐式链接
在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。显式链接
把用于链接文件各物理块的指针显式地存放在内存的一张链接表中。FAT技术
在FAT的每个表项中存放下一个盘块号,它实际上是用于盘块之间的链接的指针,通过它可以将一个文件的所有的盘块链接起来,而将文件的第一个盘块号放在自己的FCB中每一个磁盘被分成固定大小的簇。簇最少为512个字节,其大小可以成倍增长,最大为32K。
每个簇都是由唯一的索引号——一个16位二进制数来标识。因为16位二进制数最大为65536,所以FAT分区所拥有的簇的数量不可能超过65536个。簇的数量和大小的限制,就是FAT分区为什么不能超过2GB的原因。
NTFS的文件组织方式
NTFS是一个相当高级的文件系统。它的主文件表(MFT)是一个非常完整的数据库,它负责对磁盘上的每个文件进行索引。从逻辑上讲,卷中的每个文件作为一条记录,在MFT表中占有一行,其中还包括MFT自己的这一行。每行大小固定为1 KB,每行称为该行所对应文件的元数据(metadata),也称为文件控制字。
NTFS可以在文件的MFT入口中存储非常小的文件的全部内容;对于大一些的文件,这些入口会标识出包含文件数据的簇
优点:
(1) 消除了磁盘的外部碎片,提高了外存的利用率。 (2) 对插入、删除和修改记录都非常容易。 (3) 能适应文件的动态增长,无需事先知道文件的大小。
缺点:
① 不能支持高效的直接存取,要对一个较大的文件进行存取,须在FAT中顺序地查找许多盘块号; ② FAT需占用较大的内存空间,由于一个文件所占用盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT调入内存,才能保证在FAT中找到一个文件的所有盘块号。
(3) 索引组织方式。
增量式索引组织方式
为了能提高对数量众多的小型作业的访问速度,将它们的每一个盘块地址都直接放入文件控制块FCB(或索引结点)中,这样就可以直接从FCB中获得该文件的盘块地址。UNIX System V的组织方式
索引结点中设有13个地址项分为:(1) 直接地址。(2) 一次间接地址。(3) 多次间接地址。
文件存储空间的管理
空闲表法
空闲链表法
1) 空闲盘块链
将磁盘上的所有空闲空间以盘块为单位拉成一条链,其中的每一个盘块都有指向后继盘块的指针。2) 空闲盘区链
将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。位示图法
利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已分配。所有盘块所对应的位构成一个集合,称为位示图。
盘块的分配
(1) 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。(2) 将所找到的一个或一组二进制位转换成与之相应的盘块号。假定找到的其值为“0”的二进制位位于位示图的第i行、第j列,则其相应的盘块号应按下式计算b = n(i - 1) + j 式中,n代表每行的位数。
(3) 修改位示图,令map[i, j] = 1
盘块的回收
(1) 将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为: i = (b - 1)DIV n + 1 j = (b - 1)MOD n + 1(2) 修改位示图。令map[i, j] = 0。
成组链接法
回收过程是正好相反,从后往前分配,先将释放的空闲块放入第一组,第一组满了,再开辟一组,之前的第一组变为第二组