第八章 文件管理
目录
1.文件逻辑结构:文件内部记录的组织方法
-
无结构文件
-
有结构文件:顺序文件、索引文件、索引顺序文件
2.文件物理结构:文件数据在外存中存储的形式
2.1连续分配
连续外存分配指为文件分配一组相邻接的盘块
优点:顺序访问容易、一次大批量数据的访问速度较快
缺点:要求有连续的外存空间(同样存在“碎片”问题)、必须事先知道文件的长度
2.2链接分配
将属于同一文件的盘块,链接在一起进行分配称链接分配
2.2.1隐式链接
将链接指针直接放在盘块数据区中
优点:
⑴、不存在“碎片”
⑵、不需要连续外存空间
⑶、不需要事先知道文件长度
缺点:
⑴、只适合于顺序访问,不适合随机访问(低效)
⑵、可靠性差(中间任何指针出错,整个链断开)
⑶、数据区大小不等于2的次幂(指针占用数据区空间),不利于与内存页对应
2.2.2显式链接
将用于链接文件各盘块的指针,显式地存放在一张链接表(文件分配表FAT)中
优点:
⑴、FAT占空间小,可以调入内存
⑵、查找速度快,适合随机存取
(3)、同样不存在“碎片”,不需要连续外存空间
(4)、不需要事先知道文件长度
缺点:
⑴、FAT需要占用外存空间
对于1GB的硬盘,若每个盘块为512B,则有2M个盘块,每个盘块需要用21位(约3B)指示,共需要6MB外存空间
为了减少FAT占用外存的空间,分配单位可采用簇(1簇=8KB),此时,1GB硬盘需要0.26MB
⑵、FAT需要占用较大内存空间,对于大的硬盘,每次只调取部分FAT进入内存
⑶、不能高效直接存取
2.3索引分配
将分配给文件的盘块号集中在一起,按顺序放入索引块中
2.3.1单级索引分配
每个文件先分配一个索引块,当已分配的索引块装不下所有盘块号时,再分配新的索引块
优点:方便直接存取
缺点:
⑴、较FAT方式占用更多的外存空间(索引块装不满)
⑵、当文件较大时,单级索引分配效率仍较低
2.3.2两级索引分配
由文件指示的盘块(索引块)中存放的信息是下一级索引块的盘块号
优点:
对较大的文件,仍可以采用直接存取
如果文件非常大时,开可用三级、四级索引分配方式(多级索引组织方式)。
缺点:
较FAT和单级索引分配需要更多外存空间
当文件特别大时,不能分配外存空间
当盘块大小为1KB,每个盘块号占4B时,最大文件空间为:256x256=64K盘块=64MB
2.4混合索引(增量式索引分配方式)
将直接分配、单级索引分配、二级索引分配、三级索引分配等多种方式结合起来进行外存分配的方法
多级索引表支持的文件最大长度计算
假设每块(簇)外存空间大小为4KB,每个盘块地址为4B(32位,4G盘块)
直接地址(直接分配)
设置10个直接地址项,直接存放盘块号
直接地址最大文件为:10x4KB = 40KB
一次间接地址(单级索引分配)
⑴、当文件大于40KB时,采用一次间接地址(即采用单级索引分配)
⑵、一次间址最大文件为:40KB + 1K(块)x4KB = 40KB + 4MB = 4.04MB
二次间接地址(二级索引分配)
⑴、当文件大于4.04MB时,采用二次间接地址(即采用二级索引分配)
⑵、二次间址最大文件为:4.04MB + 1Kx1Kx4KB = 4.04MB + 4GB
三次间接地址(三级索引分配)
⑴、当文件大于4GB时,采用三次间接地址(即采用三级索引分配)
⑵、三次间址最大文件为:4GB + 1Kx1Kx1Kx4KB = 4GB + 4TB
3.目录管理:文件控制块、索引结点、多级目录
4.存储空间管理
4.1空闲表法
4.2空闲链表法
4.3位示图法
4.4成组链接法
例:在UNIX系统中采用成组链接法管理磁盘中的空闲盘块,设在成组链接法中,每4块为一组。当前空闲盘块号栈的内容从S.free开始为4,12,28,6,32,试写出以下每一步完成后的空闲盘块号栈内容,以及可能出现的一个或多个用于存放回收回来的空闲盘块号的空闲盘块的盘块号,以及这个空闲盘块的内容:
(1) 回收第11,23,25块
(2) 回收第17,22,16,7块
(3) 分配5块
解:
(1)空闲盘块号栈的内容为3,11,23,25,第11号空闲盘块的内容为12,28,6,32。
(2)空闲盘块号栈的内容为3,22,16,7,第22号空闲盘块的内容为11,23,25,17,第11号空闲盘块的内容为12,28,6,32。
(3)空闲盘块号栈的内容为2,11,23,第11号空闲盘块的内容为12,28,6,32。