第8章 磁盘存储器的管理
一 、外存的组织方式
1. 连续组织方式(连续分配方式)
(1)概述
①定义
连续组织方式要求为每一个文件分配一组相邻接的盘块。磁盘空间的联系组织方式如图8-1所示。
②记录方法
在目录项的“文件物理地址”字段中记录该文件第一个记录所在的盘块号和文件长度(以盘块为单位)。
图8-1 磁盘空间的连续组织方式
(2)优点
①顺序访问容易。
②顺序访问速度快。
(3)缺点
①要求为一个文件分配连续的存储空间;且易产生许多外部碎片。
②必须事先知道文件的长度。
③不能灵活地删除和插入记录。
④文件长度不宜动态增加。
2.链接组织方式
(1)隐式链接
①注意事项
在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。 ②缺点
无法直接访问盘块且稳定性差。
(2)显式链接 ①定义
把用于链接文件各物理块的指针显式地存放在内存的一张链接表中,记为文件分配表FAT。文件分配表在整 个磁盘中仅设置一张。
②优点
不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。
(3)链接组织方式优点
②对插入、删除和修改记录都非常容易。
③能适应文件的动态增长,无需事先知道文件的大小。
(4)链接组织方式缺点
①不支持高效的直接存取。
②FAT 需占用较大的内存空间。
3.索引组织方式
(1)单级索引组织方式
①索引分配方法
把每个文件的所有盘块号都记录在一个索引块(表)中。图8-2示出了磁盘空间的索引分配图。
图8-2 索引分配方式
②优点
a. 支持直接访问。
b. 不会产生外部碎片。 ③缺点
a. 对于小文件采用索引分配方式时,其索引块的利用率将是极低的。
b. 索引表增加存储空间开销,索引表的查找方法影响文件系统的效率。 (2)多级索引组织方式
①概述
多层索引使第一层索引块指向第二层索引块,第二层索引块再指向操盘空间的盘块。文件过大时,还可以指 向第三层索引……。图8-3示出了两级索引组织方式下各索引块之间的链接情况。
图8-3 两级索引分配
②优点
大大加快了对大型文件的查找速度。
③缺点
在访问一个盘块时,其所需启动磁盘的次数随着索引级数的增加而增多。
(3)增量式索引组织方式(混合组织方式)
增量式索引组织方式既采用了直接寻址方式,又采用了单级和多级索引组织方式(间接寻址)。如图8-4所 示。
图8-4 混合索引方式
二、文件存储空间的管理
1. 空闲表法和空闲链表法
(1)空闲表法 ①空闲表
空闲表法属于连续分配方式,系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项, 形成的空闲盘块表如图8-5所示。
图8-5 空闲盘块表
②存储空间的分配与回收
空闲盘区的分配同样是采用首次适应算法和最佳适应算法等算法。
(2)空闲链表法
空闲链表法是将所有空闲盘区拉成一条空闲链。根据构成链所用基本元素的不同,可把链表分成:
①空闲盘块链。
②空闲盘区链。
2. 位示图法
(1)位示图
位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲; 为“1”时,表示已分配。如图8-6所示。
图8-6 位示图
(2)盘块的分配
根据位示图进行盘块分配的步骤如下:
①顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位。
②将所找到的一个或一组二进制位转换成与之相应的盘块号。假定找到的其值为“0”的二进制位位于位示 图的第i行、第j 列,则其相应的盘块号应按下式计算:b=n(i-1)+j。式中, n 代表每行的位数。
③修改位示图,令map[i,j]=1。
(3)盘块的回收
根据位示图对盘块进行回收的步骤如下:
①将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为:i=(b-1)DIVn+1,j=(b-1)MOD n+1。
② 修改位示图。令map[i,j]=0。
(4)优点
①从位示图中很容易找到一个或一组相邻接的空闲盘块。
②由于位示图占用空间少,因而可将它保存在内存中,进而节省了许多磁盘的启动操作。
3. 成组链接法
成组链接法是空闲表和空闲链表的结合,适合与大型文件系统中。
三 、提高磁盘I/O 速度的途径
1.采用磁盘高速缓存
2. 提高磁盘I/O 速度的其他方法
(1)提前读。
(2)延迟写。
(3)优化物理块的分布。
(4)使用虚拟盘。
3. 廉价磁盘冗余阵列 (RAID)
(1)RAID 的分级
①RAID 0级
a. 将数据分块,即把数据分布到多个盘上。
b. 无冗余校验功能。
②RAID 1级
a.具有磁盘镜像功能,可利用并行读、写特性,将数据分块同时写入主盘和镜像盘。
b. 可靠性好,且从故障中恢复很简单。
c. 磁盘容量的利用率只有50%。
③RAID 3级
a.① 具有并行传输功能。
b. 校验盘采用奇偶校验。
④RAID 5级
a. 具有独立传送功能。
b. 奇偶校验信息均匀分布在所有磁盘上。
⑤RAID 6级
设置了一个专用的、可快速访问的异步校验盘。具有独立的数据访问通路。
⑥RAID 7级
采用Cache, 是 对RAID 6的改进。
(2)RAID 的优点
①可靠性高。
②磁盘I/O 速度高。
③性价比高。
四 、提高磁盘可靠性的技术
1. 第一级容错技术SFT-I
(1)双份目录和双份文件分配表。
(2)热修复重定向和写后读校验。
2.第二级容错技术SFT-IⅡ
(1)磁盘镜像。
(2)磁盘双工。
3. 基于集群技术的容错功能
4. 配置后备系统
五 、数据一致性控制
1. 事务
(1)事务的定义
事务是用于访问和修改各种数据项的一个程序单位。
(2)事务的属性
①原子性。
②一致性。
③隔离性。
④持久性。
2. 检查点
检查点的作用是使对事务记录表中事务记录的清理工作经常化。
3. 并发控制
(1)利用互斥锁实现“顺序性”。
(2)利用互斥锁和共享锁实现顺序性。