操作系统概念(高等教育出版社,第七版)复习——第十一章:文件系统实现
2017-06-20 21:55
295 查看
第十一章 文件系统实现
链接分配:每个文件是磁盘块的链表,磁盘块分布在磁盘的任何一个地方,目录包括文件的第一块的指针和最后一块的指针。
索引分配:通过把所有指针放在一起(即通过索引块)来解决。
链接分配的变种:建立文件分配表(FAT)。通过多备份几个FAT来增强可靠性。
链接分配提高了连续分配的外部碎片和大小声明的问题。
索引分配提高了链接分配的可靠性。
索引分配包括链接方案、多层索引、组合方案。
第一个空闲块=(值为0的字数)×(一个字的位数)+第一个值为1的位的偏移
优点:根据指针可以找到位置,简单有效。
缺点:如果不缓存会导致大量的磁头寻道时间。
6.
连续分配:
a. 初始地址加逻辑地址等于物理地址
b. 1
链接分配:
a. 根据链表依次寻找
b. 4
索引分配:
a. 获取指向物理地址的指针
b. 2
10.
日志文件系统可防止系统崩溃时导致的数据不一致问题。对文件系统元数据的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
哈希表:搜索快;会出现冲突;依赖哈希表大小、哈希函数
简单,可以随机存取,速度快,适合文件系统不变动的情况,有外部碎片会浪费空间,文件不能变大
链接分配:
简单,没有外部碎片,创建时无需声明所需空间,需要空间存储指针,不能随机存取,可靠性低
索引分配:
随机存取,创建时无需声明所需空间,没有外部碎片,浪费空间,索引块的指针开销通常大于链接分配的指针开销
位示图空闲为1,已分配为0,存储在磁盘上,检索时装入主存;或放在超级块中。
简单,容易获得连续文件,效率低。
链表:
链表的头放在超级块中。
不易得到连续空间,不占用额外磁盘空间。
组:
建立一个类似于分区内存管理中的分区表;每个表项记录第一块的地址和与第一块连续的空闲块的数量。
容易找到连续的空间,需要额外的空间。
计数:
需要额外空间(磁盘上有一个“空闲盘块表”);为磁盘上的每个空闲连续存储空间中的磁盘块建立一个表项。
适合连续文件空间的连续分配。
同步读写与异步读写结合
优化顺序访问
采用立即释放与提前预读顺序
让磁盘块在内存中驻留足够长时间
通过将内存部分作为虚拟磁盘或RAM磁盘来提高PC性能
尽量减少磁盘的访问频率
基础知识
文件系统实现(超重点)
一个磁盘可分为多个分区,或者一个卷可横跨多个磁盘上的数个分区。分区可以是“生的”,即没有文件系统,也可以是“熟的”,即含有文件系统。目录实现
线性列表、哈希表分配方法
连续分配:每个文件在磁盘上占有一个连续的块。链接分配:每个文件是磁盘块的链表,磁盘块分布在磁盘的任何一个地方,目录包括文件的第一块的指针和最后一块的指针。
索引分配:通过把所有指针放在一起(即通过索引块)来解决。
链接分配的变种:建立文件分配表(FAT)。通过多备份几个FAT来增强可靠性。
链接分配提高了连续分配的外部碎片和大小声明的问题。
索引分配提高了链接分配的可靠性。
索引分配包括链接方案、多层索引、组合方案。
空闲空间管理
位向量、链表、组、计数位向量(位图)
如果一块为空闲,那么其位为1,如果一块已分配,其位为0.第一个空闲块=(值为0的字数)×(一个字的位数)+第一个值为1的位的偏移
链表
通过链表将空闲空间连接起来组(grouping)
将n个空闲块的地址存在第一个空闲块中。这些块中前n-1块个确实为空,而最后一块包含另外n个空闲块的地址。计数
记录第一块的地址和紧跟第一块的连续的空闲块的数量n效率与性能
课后作业
2.优点:根据指针可以找到位置,简单有效。
缺点:如果不缓存会导致大量的磁头寻道时间。
6.
连续分配:
a. 初始地址加逻辑地址等于物理地址
b. 1
链接分配:
a. 根据链表依次寻找
b. 4
索引分配:
a. 获取指向物理地址的指针
b. 2
10.
日志文件系统可防止系统崩溃时导致的数据不一致问题。对文件系统元数据的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
思考题
文件系统的目录实现:
线性表:简单;查找需要线性搜索,费时哈希表:搜索快;会出现冲突;依赖哈希表大小、哈希函数
说明几种文件分配方式的思想、特点:
连续分配:简单,可以随机存取,速度快,适合文件系统不变动的情况,有外部碎片会浪费空间,文件不能变大
链接分配:
简单,没有外部碎片,创建时无需声明所需空间,需要空间存储指针,不能随机存取,可靠性低
索引分配:
随机存取,创建时无需声明所需空间,没有外部碎片,浪费空间,索引块的指针开销通常大于链接分配的指针开销
说明几种磁盘空闲空间的管理方法的思想及特点(优点及缺点):
位向量:位示图空闲为1,已分配为0,存储在磁盘上,检索时装入主存;或放在超级块中。
简单,容易获得连续文件,效率低。
链表:
链表的头放在超级块中。
不易得到连续空间,不占用额外磁盘空间。
组:
建立一个类似于分区内存管理中的分区表;每个表项记录第一块的地址和与第一块连续的空闲块的数量。
容易找到连续的空间,需要额外的空间。
计数:
需要额外空间(磁盘上有一个“空闲盘块表”);为磁盘上的每个空闲连续存储空间中的磁盘块建立一个表项。
适合连续文件空间的连续分配。
为提高文件系统的性能,可采用哪些措施:
磁盘cache同步读写与异步读写结合
优化顺序访问
采用立即释放与提前预读顺序
让磁盘块在内存中驻留足够长时间
通过将内存部分作为虚拟磁盘或RAM磁盘来提高PC性能
尽量减少磁盘的访问频率
相关文章推荐
- 操作系统概念(高等教育出版社,第七版)复习——第十章:文件系统接口
- 操作系统概念(第十一章) 文件系统实现
- 操作系统复习-4.2文件系统实现
- 操作系统概念(第十一章) 文件系统实现
- 操作系统概念(高等教育出版社,第七版)复习——第十三章:I/O输入系统
- 修改系统DLL文件实现禁用的方法
- Chord改进算法在文件共享系统的实现
- ARM7系统中实现CF卡存储的文件系统设计
- 如何实现一个文件系统(全文)
- 在C51系统上实现YAFFS文件系统
- VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
- 简单文件系统的实现
- 如何实现一个文件系统
- 简单文件系统的实现
- VMware:用U盘实现主客系统交换文件
- VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
- JTree实现的系统文件目录树
- YAFFS文件系统在嵌入式Linux上的实现
- JTree实现的系统文件目录树
- 一个文件系统(一个单用户文件系统的实现)