操作系统笔记——第12章 文件系统

文件系统

内容比较多,老师讲得比较浅。

1. 基本概念

  • 文件系统和文件
    • 文件系统:一种用于持久性存储的系统抽象
    • 文件:文件系统中一个单元的相关数据在操作系统中抽象
    • 文件系统的功能:
      • 分配文件磁盘空间(管理文件块;管理空闲空间;分配算法)
      • 管理文件集合(定位;命名;最常见的是分层文件系统)
      • 提供便利及特征(保护;可靠性/持久性)
    • 文件和块:文件属性,存储在文件块中,表示文件的表征属性
  • 文件描述符:【内容较多,只记录部分】(用户角度)需要元数据数据来管理打开文件
    • 文件指针:指向最近的一次读写文职,每个打开了这个文件的进程都这个指针
    • 文件打开计数:记录文件打开的次数。当最后一个进程关闭了文件时,允许将其从打开文件表中移除
    • 文件磁盘位置:缓存数据访问信息
    • 访问权限:每个程序访问模式信息
  • 目录
    • 文件以目录的方式组织起来。目录是一类特殊的文件。早期的文件系统是扁平的,只有一层目录。采用目录可以建立层次结构。目录是文件名的线性表,包含了指向数据块的指针。
    • 典型操作:搜索、拆功能键、删除、重命名文件;枚举目录;在文件系统中遍历一个路径。
    • 操作系统应该只允许内核模式修改目录:确保映射的完整性;应用系统可以读目录(例如ls)
  • 文件别名
    • 多个文件名关联同一个文件。有两种实现方式:硬链接(多个文件项指向一个文件);软链接(以“快捷方式”指向其他文件)。
  • 文件系统种类
    • 磁盘文件系统
    • 数据库文件系统
    • 日志文件系统
    • 网络/分布式文件系统
    • 特殊/虚拟文件系统

2. 虚拟文件系统

  • 目的:将复杂的不同类型的系统抽象,通过建立虚拟文件系统,提供文件系统API,屏蔽底层系统的差异性,使得系统应用层面更广。
  • 功能:
    • 提供相同的文件和文件系统接口
    • 管理所有文件和文件系统关联的数据结构
    • 高效查询例程,遍历文件系统
    • 与特定文件系统模块的交互
  • 基本文件系统包括:卷控制块 superblock;文件控制块 vnode/inode;目录节点 dentry

3. 数据缓存

  • 数据块按需读入内存
  • 数据块使用后被缓存
  • 两种数据块缓存方式
    • 普通缓冲区缓存
    • 页缓存:统一缓存数据块和内存页

4. 打开文件的数据结构

存在锁机制

5. 文件分配

对文件的管理。即如何为一个文件分配数据块

分配方式

  • 连续分配
  • 链式分配
  • 索引分配

指标:

  • 高效:如存储利用
  • 表现:如访问速度

6. 空闲空间列表

主要体现在磁盘管理。用位图/链式管理空闲空间。

7. 多次盘管理 - RAID

通常磁盘通过分区来最大限度减小寻道时间。

文件系统由分区组成。分区即为硬件磁盘的一种适合操作系统指定格式的划分

卷:一个拥有一个文件系统实例的可访问的存储空间,通常常驻在磁盘的单个分区上。

使用多个并行磁盘来增加吞吐量,通过冗余的方式提高可靠性和可用性。由此产生 冗余磁盘阵列RAID的概念。

8. 磁盘调度

算法与进程调度相似,执行对象为磁盘检索。

电梯算法、SSTF\SCAN\CSCAN\FSCAN\N-Step-SCAN等算法

猜你喜欢

转载自blog.csdn.net/MaoziYa/article/details/107493390