文章目录
介绍
我只整理了一些比较关键的、考试可能会考的点,有些具体琐碎的内容我没整理到笔记中,希望对大家有所帮助!
九、磁盘存储器管理
9.1 外存的组织方式
了解外存的三种组织方式
顺序、链接、索引
9.1.1 连续组织方式
顺序容易存,但不灵活
9.1.2 链接组织方式
分为显式链接和隐式链接
显式链接示例
FAT12:表项长度为12个位,即1.5字节
FAT16:表项长度为16个位,即2字节
FAT32:表项长度为32个位,即4字节
盘块个数 = 表项个数
FAT表占用空间:
表项个数 * 表项长度
= 盘块个数 * 表项长度
= 硬盘容量 ÷ 盘块大小 * 表项长度
用一张链接表,记录文件中的盘块号 序号:盘块号; 表项:下一个盘块
省流:一个链接一个,一个数组的值作为索引继续找到对应的值,循环反复
掌握FAT相关计算(下方例题)
例:若采用FAT文件系统且盘块大小设定为4KB,则请问采用FAT16可管理的最大磁盘容量是多少?
计算:FAT16可管理 2 16 2^{16} 216个盘块,因此可管理的最大空间为 2 16 2^{16} 216×4KB=256MB
注意:可管理 2 16 2^{16} 216个盘块,指的是可以管理的最大盘块数量
实际上比如电脑只有 2 13 2^{13} 213个盘块,那就没有填满
如果电脑有 2 18 2^{18} 218个盘块,不仅填满而且溢出了,那只能选择FAT32(即更大的表项长度)或者其他方式了
簇
对于FAT表项的管理,以FAT16文件系统的为例,其FAT表项是16位的,也就是每个FAT项占2个字节。16位的FAT表项项最多管理65535个簇。在Windows 2000系统之前簇大小最大为64个扇区(32KB),这样,采用FAT16操作系统最多能管理 32*65535=209120KB=2048MB=2GB
的分区
一个簇有多个盘块,每个盘块默认512B(除非题目说明 块大小)
FAT16 = 2 16 2^{16} 216 = 65536 个簇,每个簇64个盘块,那么总存储量 = 65536 * 64 * 512 = 2048MB
9.1.3 索引组织方式
磁盘块号放到索引块(表)中管理
索引、多级索引、增量式混合索引(直接寻址 + 单级 + 多级索引寻址)
9.2 文件存储空间的管理
盘块:文件存储空间的基本分配单位
空闲区表法
空闲链表法(空闲盘块链、空闲区块链)
位示图法
成组链接法
基于位示图法的盘块分配与回收
分配:根据二维矩阵的行列,计算盘块号 map[i,j] = 1
回收:根据盘块号反向推出行列位置,从而进行修改 map[i,j] = 0
9.3 提高磁盘IO速度的途径
①有效利用存储空间; ②提高磁盘的I/O速度; ③提高磁盘系统的可靠性。
提高磁盘I/O的方法
设置磁盘高速缓存、提前读、延迟写、优化物理块(分配连续盘块/簇)、虚拟盘
- 磁盘高速缓存:数据直接给内存,LRU等置换算法
- 提前读:读下一个盘块的内容
- 延迟写:数据延迟写回磁盘(已被广泛采用)
- 优化物理块的分布,减少磁头移动距离
- 虚拟盘:利用内存空间仿真磁盘(RAM盘)
设置磁盘高速缓存的方法和目的
在内存中设置专门的缓冲区,通过减少I/O频率提高I/O速度
廉价磁盘冗余阵列RAID
概念:多个小磁盘组成的集合(大磁盘)
优点
- 可靠性高:多磁盘互为备份
- 磁盘IO速度快:多磁盘并行存取
- 性价比高:采用多个廉价磁盘
廉价磁盘冗余阵列RAID的特点
可靠性高、磁盘IO速度快、性价比高
9.4 提高磁盘可靠性的技术
系统容错技术:设置冗余部件来提高可靠性
建立后备系统:把暂时不需要但仍然有用的数据存放在后备系统中并保存起来(重要数据备份)
- 备份到 磁带机、硬盘、光盘驱动器 等
9.5 数据一致性控制
多个文件的相同数据要保持一致
事务
具有原子性
事务记录包括:事务名、数据项名、旧值、新值
检查点
引入检查点的主要目的:使事务记录表中事务记录的清理工作经常化