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

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

第十二章 File-System Implementation

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

新建一个文件,需要新建一个FCB,并且更新目录信息
打开文件的步骤:先搜索系统打开文件表,如果有这个文件,那么进程打开文件表会新建一个指针指向这个文件。如果没有,搜索目录结构找到这个文件,将它的FCB复制到系统打开文件表中,然后步骤同上
操作系统概念-第九版 期末复习 第十二章 文件系统实现_第1张图片
关闭文件时,移除进程打开文件表的指针,系统打开文件表引用计数减一,更新的数据被写回磁盘

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

虚拟文件系统

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

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

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

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

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

操作系统概念-第九版 期末复习 第十二章 文件系统实现_第4张图片
2. 链接(不涉及外部碎片,不需要预先已知的文件大小,并允许文件随时动态增长。但仅适用于顺序访问。分配块群可减少指针浪费空间,但有内部碎片。指针可能丢失或损坏也是个大问题。FAT File Allocation Table是链接列表的变体,所有链接都存储在表中。可以缓存在内存中提高速度)
操作系统概念-第九版 期末复习 第十二章 文件系统实现_第5张图片
操作系统概念-第九版 期末复习 第十二章 文件系统实现_第6张图片

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

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

磁盘空闲文件管理
  1. 使用标识位标识每个磁盘块是否被分配
  2. 链接列表还可用于跟踪所有可用块。通常,系统只是从列表的开头添加和删除单个块。
    操作系统概念-第九版 期末复习 第十二章 文件系统实现_第8张图片
  3. Grouping
  4. Counting(保留第一个可用块的地址和后面可用块的计数)
一致性检查

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

你可能感兴趣的:(操作系统概念)