一、文件系统的基本概念
1. 文件系统:一种用于持久性存贮的系统抽象,是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件系统,简称文件系统。
2. 文件:文件系统中一个单元的相关数据在操作系统中的抽象
3. 文件系统的功能
(1)分配文件磁盘空间
(2)管理文件集合
(3)提供的便利及特征
4. 文件和块
(1)文件属性
(2) 文件头:文件系统元数据中的文件信息
5. 文件描述符
(1)文件访问模式:
1 f = open(name, flag);
2 ...
3 read(f,...);
4 ...
5 close(f);
(2)内核跟踪进程打开的所有文件
(3)文件描述符:操作系统在打开文件表中维护的打开文件状态和信息
6. 文件的用户视图和系统视图
(1)文件的用户视图
(2)系统的访问接口
(3)操作系统的文件视图
7. 用户视图到系统视图的转换
(1)进程读文件
(2)进程写文件
(3)文件系统中的基本操作单位是数据块
8. 访问模式
操作系统需要了解进程如何访问文件。
索引文件示例
8. 文件共享和访问控制
多用户系统中的文件共享是很必要的
(1)访问控制
(2)文件访问控制列表(ACL):<文件实体,权限>
(3)unix模式:
9. 语义一致性
(1)规定多进程如何同时访问共享文件
(2)Unix文件系统(UFS)语义
(3)会话语义
(4)读写锁:一些操作系统和文件系统提供改功能
10. 文件系统挂载
文件系统需要先挂载才能被访问,未挂载的文件系统被挂载在挂载点上。
二、虚拟文件系统
1.文件系统的实现:分层结构
2. 虚拟文件系统
(1)目的:对所有不同文件系统的抽象
(2)功能:
3. 文件系统基本数据结构
(1)文件卷控制块(unix:“superblock”)
(2)文件控制块(unix:“vnode” or “inode”)
(3)目录项(Linux:“dentry”)
4. 文件系统的组织视图
5. 文件系统的存储结构
(1)文件系统数据结构
(2)持久存储在外存中,存储设备的数据块中
(3)当需要时加载进内存
6. 文件系统的存储视图
三、文件缓存和打开文件
1. 多种磁盘缓存位置
2. 数据块缓存
(1)数据块按需读入内存
(2)数据块使用后被缓存
(3)两种数据块缓存方式
3. 页缓存
(1)虚拟页式存储
(2)文件数据块的页缓存
4. 文件系统中打开文件的数据结构
(1)文件描述符
(2)打开文件表
5. 打开文件锁
一些系统提供文件锁,用于协调多进程的文件访问
四、文件分配
1. 文件大小
2. 文件分配
如何表示分配给一个文件数据块的位置和顺序
(1)分配方式
(2)指标
3. 连续分配
(1)文件头指定起始块和长度
(2)分配策略
(3)优点
(4)缺点
4. 链式分配
(1)文件以数据块链表方式存储,文件头包含了到第一块和最后一块的指针。
(2)优点
(3)缺点
5. 索引分配
(1)为每个文件创建一个索引数据块,即指向文件数据块的指针列表,文件头包含了索引数据块指针
(2)优点
(3)缺点
6. 大文件的索引分配
(1)链式索引块(IB + IB +...)
(2)多级索引块(IB * IB *...)
7. UFS多级索引分配
(1)文件头包含13个指针
10个指针指向数据块,第11个指针指向索引块,第12个指针指向二级索引块,第13个指针指向三级索引块
(2)效果
五、空闲空间管理
跟踪记录文件卷中未分配的数据块
1. 空闲空间组织:位图
(1)用位图代表空闲数据块列表
(2)使用简单但是可能会是一个很大的向量表
2. 其他空闲空间组织方式
(1)链表
(2)链式索引
六、冗余磁盘整列RAID
1. 磁盘分区
通常磁盘通过分区来最大限度减小寻道时间,分区是一组柱面的集合,每个分区都可视为逻辑上独立的磁盘
2. 一个典型的磁盘文件系统组织
文件卷:一个拥有完整文件系统实例的外存空间,通常常驻在磁盘的单个分区上
3. 多磁盘管理
(1)使用多磁盘可改善
(2)冗余磁盘阵列(RAID,Redundant Array of Inexpensive Disks)
(3)冗余磁盘阵列的实现
4. RAID-0:磁盘条带化
把数据块分成多个子块,存储在独立的磁盘中,通过独立磁盘上并行数据块访问提供更大的磁盘带宽
5. RAID-1:磁盘镜像
向两个磁盘写入,从任何一个读取,使得可靠性成倍增长,读取性能线性增加
6. RAID-4:带校验的磁盘条带化
数据块级的磁盘条带化加专用奇偶校验磁盘,允许从任意一个故障磁盘中恢复
7. RAID-5:带分布式校验的磁盘条带化
8. 基于位和基于块的磁盘条带化
条带化和奇偶校验按 “字节” 或者 “位”
9. 可纠正多个磁盘错误的冗余磁盘阵列
原文:https://www.cnblogs.com/cjsword/p/12264863.html