4.1 文件系统基础
文件的概念
- 组成
- 数据项
- 记录(一组相关数据项的集合)
- 文件
- 记录式文件
- 流式文件
- 属性
- 根据系统确定具体属性内容,通常有名称、标识符、类型等等
- 基本操作
- 创建文件
- 写文件
- 读文件
- 重定位(重设文件位置)
- 删除文件
- 截断文件
文件打开
- 创建 FCB(File Control Block):包含文件指针、文件打开计数、文件磁盘位置、访问权限
文件的逻辑结构
- 无结构文件
- 有结构文件
- 顺序文件
- 索引文件
- 索引顺序文件
- 直接文件或散列文件
目录相关
- 文件控制块
- 索引节点
- 目录结构
- 目标功能:搜索、创建、删除、显示目录、修改目录
- 目录结构分类
- 单级目录结构
- 两级目录结构:按用户划分区间
- 多级目录结构:树形目录结构
- 无环图目录结构:方便共享
文件共享
- 基于索引节点方式的共享(硬链接)
- 利用符号链实现文件共享(软链接)
文件保护
- 访问类型:读、写、执行、添加、删除、查看文件名文件属性
- 访问控制方式
- 用户分组:拥有者、组、其他
- 限制方式
- 口令:限于操作系统的限制,且口令存在操作系统中,不安全
- 密码:对文件直接加密,但读文件需要额外的解密计算开销
4.2 文件系统实现
文件系统层次结构
- 用户调用接口
- 文件目录系统
- 存取控制验证系统
- 逻辑文件系统与文件信息缓冲区
- 物理文件系统
- 辅助分配模块
- 设备管理程序模块
目录实现
- 线性表
- 哈希表
文件实现
- 文件分配方式
- 连续分配
- 链接分配
- 隐式链接分配:链接指针放在每个文件块中
- 显示链接分配:将链接指针单独存放在一张表中
- 索引分配
- 链接式索引:打文件索引慢
- 多层索引:小文件索引慢
- 混合索引:兼顾
- 文件存储空间管理
- 分区:文件卷(如C盘 E盘)
- 空闲块管理
- 空闲表法:顺序表记录空闲的起始地址和空闲的长度,也有类似首次适应、循环首次适应等算法,通常为了增删快捷需要用链表
- 空闲链表法:将空闲的盘块链接起来
- 位视图法:一位代表一个盘块
- 成组链接法:空闲链表法的加强版,方便批量分配
4.3 磁盘组织与管理
磁盘的结构
- 物理结构
- 磁臂
- 磁头
- 盘面
- 磁道
- 逻辑地址
- 柱面号*盘面号*扇区号(块号)
磁盘调度算法
- 指标
- 寻道时间
- 磁臂启动时间
- 磁臂移动时间
- 旋转延迟时间
- 读取时间
- 寻道时间
- 算法
- FCFS(First Come First Served):先来先服务算法
- SSTF(Shortest Seek Time First):最短寻找时间优先
- SCAN:扫描算法
- LOOK:不到头扫描算法
- C-SCAN(Circular SCAN)循环扫描算法
- C-LOOK:不到头循环扫描算法
磁盘块号分配
- 交替编号
磁盘管理
- 磁盘初始化
- 分扇区:低级格式化
- 分区(建立文件系统):逻辑格式化
- 引导块
- 通常存ROM
- 坏块