操作系统概念-第九版 期末复习 第十二章 文件系统实现

操作系统概念第九版期末复习

第十二章 File-System Implementation

文件系统在磁盘上存储几个重要的数据结构
  1. 卷控制块
  2. 目录控制块(文件名和指向相应FCB的指针)
  3. 文件控制块FCB(文件大小信息权限等)
内存中还存储了几个关键数据结构:
  1. 内存中挂载表
  2. 内存中目录缓存(保存了最近访问目录的信息)
  3. 系统打开文件表
  4. 进程打开文件表
  5. 缓冲区保存最近访问的文件系统块(读取或写入)

新建一个文件,需要新建一个FCB,并且更新目录信息
打开文件的步骤:先搜索系统打开文件表,如果有这个文件,那么进程打开文件表会新建一个指针指向这个文件。如果没有,搜索目录结构找到这个文件,将它的FCB复制到系统打开文件表中,然后步骤同上
在这里插入图片描述
关闭文件时,移除进程打开文件表的指针,系统打开文件表引用计数减一,更新的数据被写回磁盘

在这里插入图片描述

虚拟文件系统

虚拟文件系统提供一种面向对象的文件系统实现方式。虚拟文件系统将同一系统调用接口(API)给不同的操作系统使用

在这里插入图片描述

目录实现
  1. 线性表
  2. 哈希表
分配方式

在磁盘上存储文件的有三种主要方法:

  1. 连续(简单,支持顺序访问和随机访问,性能优越。但有外部碎片问题和文件大小声明问题,可以给文件分配一个或n个拓展块)

在这里插入图片描述
2. 链接(不涉及外部碎片,不需要预先已知的文件大小,并允许文件随时动态增长。但仅适用于顺序访问。分配块群可减少指针浪费空间,但有内部碎片。指针可能丢失或损坏也是个大问题。FAT File Allocation Table是链接列表的变体,所有链接都存储在表中。可以缓存在内存中提高速度)
在这里插入图片描述
在这里插入图片描述

  1. 索引( 在 UNIX inode 中使用混合方案,其中前 12 个数据块指针直接存储在 inode 中,然后一级、二级和三级索引指针提供对更多数据块的访问。非常适合顺序和随机访问)

在这里插入图片描述

磁盘空闲文件管理
  1. 使用标识位标识每个磁盘块是否被分配
  2. 链接列表还可用于跟踪所有可用块。通常,系统只是从列表的开头添加和删除单个块。
    在这里插入图片描述
  3. Grouping
  4. Counting(保留第一个可用块的地址和后面可用块的计数)
一致性检查

将目录结构中的数据与磁盘上的数据块进行比较,并尝试修复不一致

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值