外存分配方法:
一、连续外存分配:
连续外存分配指为文件分配一组相邻接的盘块
优点: 顺序访问容易 一次大批量数据的访问速度较快
缺点: 要求有连续的外存空间(同样存在“碎片”问题) 必须事先知道文件的长度
二、链接分配:
将属于同一文件的盘块,链接在一起进行分配称链接分配
1、隐式链接 将链接指针直接放在盘块数据区中
优点:
⑴、不存在“碎片”
⑵、不需要连续外存空间
⑶、不需要事先知道文件长度
缺点:
⑴、只适合于顺序访问,不适合随机访问(低效)
⑵、可靠性差(中间任何指针出错,整个链断开)
⑶、数据区大小不等于2的次幂(指针占用数据区空间),不利于与内存页对应
2、显式链接
将用于链接文件各盘块的指针,显式地存放在一张链接表(文件分配表FAT)中
优点:
⑴、FAT占空间小,可以调入内存
⑵、查找速度快,适合随机存取 同样不存在“碎片”,不需要连续外存空间 不需要事先知道文件长度
缺点:
⑴、FAT需要占用外存空间:对于1GB的硬盘,若每个盘块为512B,则有2M个盘块,每个盘块需要用21位(约3B)指示,共需要6MB外存空间 为了减少FAT占用外存的空间,分配单位可采用簇(1簇=8KB),此时,1GB硬盘需要0.26MB
⑵、FAT需要占用较大内存空间: 对于大的硬盘,每次只调取部分FAT进入内存
⑶、不能高效直接存取
三、索引分配
将分配给文件的盘块号集中在一起,按顺序放入索引块中
1、单级索引分配:每个文件先分配一个索引块 当已分配的索引块装不下所有盘块号时,再分配新的索引块
优点: 方便直接存取
缺点:
⑴、较FAT方式占用更多的外存空间(索引块装不满)
⑵、当文件较大时,单级索引分配效率仍较低
2、两级索引分配:
由文件指示的盘块(索引块)中存放的信息是下一级索引块的盘块号
缺点:
较FAT和单级索引分配需要更多外存空间:当文件特别大时,不能分配外存空间 当盘块大小为1KB,每个盘块号占4B时,最大文件空间为:256x256=64K盘块=64MB
优点:
对较大的文件,仍可以采用直接存取
3、混合索引分配:
将直接分配、单级索引分配、二级索引分配、三级索引分配等多种方式结合起来进行外存分配的方法
文件存储空间的管理:
一、空闲表法
空闲表法属于连续分配方式,空闲表法指为外存上的所有空闲区建立一张空闲表
空闲盘区的分配算法: 1、首次适应算法 2、循环首次适应算法 3、最佳适应算法 4、最坏适应算法
空闲盘区的回收算法: 对邻接盘区进行拼接
- 空闲表法主要应用于对换区的分配操作中
- 当文件(1-4个块)较小时,为了加快磁盘I/O,也尽量分配连续的盘块
1、空闲盘块链表法:
将磁盘上的所有空闲存储空间,以盘块为基本单位连成一个链表
用户需要磁盘空间时,从链表首部分配盘块
当用户释放磁盘空间时,将释放的盘块挂在链表尾部
优点: 盘块分配和回收操作简单
缺点: 空闲盘块链表可能很长,分配和回收费时 空闲盘块链表中间任何指针出错,导致其后所有空闲盘块丢失
2、空闲盘区链表法:
将磁盘上的所有空闲盘区(多个连续盘块)连成一个链表
用户需要磁盘空间时,沿链表采用首次适应算法,分配盘区
当用户释放磁盘空间时,将释放的盘区插入链表适应位置(可能需要拼接)
优点: 空闲盘区链表可能较短
缺点: 盘区分配和回收操作比较复杂 空闲盘区链表中间任何指针出错,导致其后所有空闲盘区丢失
三、位示图法:
位示图指利用二进制的一位来表示磁盘中一个盘块的使用情况
优点: 1、位示图占用空间较小,可以调入内存 2、分配和回收操作简单、有效
位示图法常用于微型机和小型机中,如MS OS系统中
四、成组链接法:
将空盘块每N(如100)个组成一组,将空闲盘块组连成链表,空闲盘块号栈:存放当前可用的一组空闲盘块号
磁盘容错技术:
一、第一级容错技术(SFT-I)
SFT-I主要防止出现磁盘表面错误时,数据的丢失
SFT-I在一般的磁盘存储系统中都会使用SFT(System File Table)
1、双份目录和双份文件分配表(FAT):
- 目录和文件分配表是文件系统中最重要的数据
- 在磁盘的不同地方,分别存放两份目录和文件分配表
- 操作一般在主目录和主FAT上进行,并定期将修改的数据存入备用目录和FAT中
- 当磁盘出现损坏,启动备用目录和备用FAT,并新建一份目录和FAT
- 每次开机,检查两份目录和FAT的一致性
2、热修复重定向:
- 在磁盘中建立热修复区
- 当出现盘块损坏时,将数据写入热修复区
- 每次对损坏盘块的访问,都自动转为对应热修复区中盘块的访问
3、写后读校验:
- 将从内存某缓冲区A写入盘块,立即读出该盘块的内容至内存缓冲区B
- 比较A和B两个缓冲区的内容是否一致
- 若不一致,再做一次;若仍然不一致,则认为盘块损坏,将内容写入热修复区
二、第二级容错技术(SFT-II)
SFT-II主要解决磁盘驱动器发生故障时,数据无法正常读写的问题
相对SFT-I,SFT-II是高一级的容错技术
1、磁盘镜像:
- 将两个磁盘驱动器连在一个磁盘控制器上
- 每次向主磁盘写入的数据,同样也向备份磁盘写入,并写入相同的位置
- 主磁盘和备份磁盘中的所有数据完全相同
- 当主磁盘驱动器损坏时,启用备份磁盘
2、磁盘双工:
- 将两个磁盘驱动器分别接在两台磁盘控制器上
- 每次向主磁盘写入的数据,同样也向备份磁盘写入,并写入相同的位置
- 主磁盘和备份磁盘中的所有数据完全相同
- 当主磁盘系统损坏时,启用备份磁盘系统
优点: 具有容错能力
缺点: 浪费严重(只有50%效率)