12.1 文件系统:总体介绍
文件系统和文件
文件系统:一种用于持久性存储的系统抽象,放在磁盘上
文件:文件系统中一个单元的相关数据在OS中的抽象
12.2 文件系统的功能
分配文件磁盘空间
管理文件集合
提供的便来以及特征:保护(可访问性) 可靠性(持久性)
12.3 文件和块
12.4 文件描述符
内核会跟踪每个进程打开的文件,然后OS为每个进程维护一个打开文件表,那么文件描述符就是这个表中的索引
用元数据来管理打开文件:
文件指针,文件打开次数,文件磁盘位置,访问权限
用户怎么访问文件
顺序访问 按字节依次读取 几乎所有的访问
随机访问 从中间读写 不常用但是重要
基于内容访问 通过特征 通过建立索引然后查找文件
文件内部结构:
无结构 单词,比特队列
简单记录结构 列,固定长度,可变长度
复杂结构 格式化的文档 可执行文件
12.5 ,目录
一个文件系统需要先挂载才能被访问
文件别名
举个栗子,快捷方式就是这个文件存放了另一个文件的路径名,这是软链接
硬链接:指的是多个文件项指向一个文件
12.6 文件系统种类
磁盘文件系统 数据库文件系统 日志文件系统 网络/分布式文件系统
下面讲的是文件系统的实现
12.2 虚拟文件系统
分层结构 上层是 虚拟(逻辑)文件系统
底层是 特定文件系统模块
虚拟文件系统的目的:对所有不同文件系统的抽象
功能:提供相同的文件和文件系统接口
管理所有文件和文件系统关联的数据结构
高效查询例程,遍历文件系统
与特定文件系统模块的交互
虚拟文件系统不存在在硬盘上,它存在在内存中,当OS创建之后,就会创建
文件系统数据结构 卷控制块(每个文件系统一个)
文件控制块(每个文件一个)
目录节点(每个目录一个)
这些在何时进入内存呢:当需要时加载进内存
卷控制块:当文件系统挂载时进入内存
文件控制块:当文件被访问时进入内存
目录节点:当你遍历一个文件路径时进入内存
12.3 数据缓存
数据块按需读入内存
数据块使用后被缓存
两种数据缓存方式: 普通缓冲区缓存 页缓存
12.4 打开文件的数据结构
强制和劝告
12.5 文件分配
对文件数据空间的管理
如何为一个文件分配数据块
连续分配 用文件头指定起始块和长度 , 不能实现方便地添加扩展删除功能
链式分配
增删较为容易
缺点:串行访问,不能快速访问;不可靠,一旦断一个
索引分配:支持直接访问,增删容易,但是
12.6 空闲空间列表
用位图来表示空闲空间
位图 必须保存在磁盘上
12.7 多磁盘管理RAID
12.8 磁盘调度
是在OS层面重新组织I/O请求顺序,有效减少磁盘访问的开销
总是选择寻道时间最少的,那么对远的访问请求不友好,不公平
完结撒花?
联系客服