目录
1、外存的组织方式
文件的物理结构直接与外存的组织方式有关。对于不同的外存组织方式,将形成不同的文件物理结构。目前常用的外存组织方式有:
- 连续组织方式。在对文件采取连续组织方式时,为每个文件分配一片连续的磁盘空间,由此所形成的文件物理结构将是顺序式的文件结构。
- 链接组织方式。在对文件采取链接组织方式时,可以为每个文件分配不连续的磁盘空间,通过链接指针将一个文件的所有盘块链接在一起,由此所形成的将是链接式文件结构。
- 索引组织方式。在对文件采取索引组织方式时,所形成的将是索引式文件结构。
//各种文件组织方式的优劣,可类比对应的数据结构性能的优劣,如数组、链表、Hash表等
(1)连续组织方式
连续组织方式又称连续分配方式,要求为每一个文件分配一组相邻接的盘块。通常它们都位于一条磁道上,在进行读/写时,不必移动磁头。在采用连续组织方式时,可把逻辑文件中的记录顺序地存储到邻接的各物理盘块中,这样所形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。//产生顺序文件,保证了逻辑记录顺序与磁盘块的顺序一致
这种组织方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。为使系统能找到文件存放的地址,应在目录项的“文件物理地址”字段中记录该文件第一个记录所在的盘块号和文件长度(以盘块为单位)。
连续组织方式的主要优点:顺序访问容易且访问速度快。由连续分配所装入的文件,其所占用的盘块可能是位于一条或几条相邻的磁道上,磁头的移动距离最少,因此,这种对文件访问的速度是几种存储空间分配方式中最高的一种。//速度最快
连续组织方式的主要缺点:
- 分配连续的存储空间,会产生出许多外部碎片,严重地降低了外存空间的利用率。如果定期利用紧凑方法来消除碎片则又需花费大量的机器时间。
- 必须事先知道文件的长度。文件的大小有时只能靠估算,一般情况下会将文件长度估得比实际的大(预防不足),从而造成浪费。
- 不能灵活地删除和插入记录。为保持文件的有序性,在删除和插入记录时,都需要对相邻的记录做物理上的移动,还会动态地改变文件的大小。
(2)链接组织方式
采用链接组织方式时,可为文件分配多个不连续的盘块,再通过每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,由此所形成的物理文件称为链接文件。
链接组织方式的主要优点是://解决了连续分配方式的不足
- 消除了磁盘的外部碎片,提高了外存的利用率。
- 对插入、删除和修改记录都非常容易。
- 能适应文件的动态增长,无需事先知道文件的大小。
链接方式又可分为隐式链接和显式链接两种形式。
2.1 - 隐式链接
采用隐式链接组织方式时,在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针,而在每个盘块中都含有一个指向下一个盘块的指针。如下图所示:
// 上图所示的链接顺序为:9->16->1->10->25,一共使用了5个盘块
如果一个指针占用 4 个字节,对于盘块大小为 512 字节的磁盘,则每个盘块中只有 508 个字节可供用户使用。//指针太多,浪费磁盘空间
隐式链接组织方式的主要问题在于,它只适合于顺序访问,它对随机访问是极其低效的。此外,只通过链接指针将一大批离散的盘块链接起来,其可靠性较差,因为只要其中的任何一个指针出现问题,都会导致整个链的断开。//随机访问低效+可靠性差
对指针占用磁盘空间的改进思路:
为了提高检索速度和减小指针所占用的存储空间,可以将几个盘块组成一个簇(cluster),以簇为单位进行盘块分配,但这种方式却增大了内部碎片。//就是把多个盘捆成一起使用一个指针,连续分配和链式分配的折中版本
2.2 - 显式链接
把用于链接文件各物理块的指针显式地存放在内存的一张链接表中,该表在整个磁盘中仅设置一张。//指针不再是隐式的放在物理盘块中了,而是放在内存中的一张表里
如上图所示,表的序号是物理盘块号,从 0 开始,直至 N - 1(N为盘块总数)。在每个表项中存放链接指针,即下一个盘块号。//链接顺序为