基本概念
文件&文件系统
- 文件系统:一种用于持久性存储的系统抽象
- 文件:文件系统一个单元的相关数据在OS的抽象(包含文件名、文件数据、属性等)
- 文件属性:名称、类型、位置、大小、保护、创建者等
- 文件头
- 在存储元数据中保存了每个文件信息
- 保存文件属性
- 跟踪哪一块存储块属于逻辑上文件结构的哪个偏移
文件描述符
-
文件使用模式:使用程序必须在使用前“打开”文件,获得文件描述符 f(整数)
f = open(name, flag); ... ... = read(f, ...); ... close(f);
-
内核跟踪每个进程打开的文件
- OS为每个进程维护一个 打开文件表
- 一个打开文件描述符是这个表中的索引
-
需要元数据管理文件
- 文件指针:指向最后一次文件访问位置
- 文件打开计数:记录文件打开次数 → 当最后一个进程关闭文件,允许将其从打开文件表移除
- 文件磁盘位置:缓存数据访问信息
- 访问权限
目录
文件别名
不同的文件系统
虚拟文件系统
数据块缓存
打开文件的数据结构
文件分配
-
连续/顺序分配
-
链式分配
-
索引分配
空闲空间列表
分配block、内存置1后掉电而磁盘块未置1的解决方法:
多磁盘管理 - RAID
RAID 0:
RAID 1:
RAID 4:(奇偶校验块频繁写)
RAID 5:(将奇偶校验平均分配到5个盘)
校验方式:(以bit/byte/block?)
磁盘调度
-
目的:减少磁盘寻道开销
-
FIFO:
最短服务优先:
- 可能导致饥饿
SCAN算法:
C-SCAN算法:
C-LOOK:
N-STEP-SCAN:
FSCAN算法(现代OS常见):