文件管理
文件管理
用户的输入输出以文件为基本单位
文件存储管理
文件的逻辑结构、物理结构
存储逻辑结构:逻辑结构是为了方便用户而设计
- 流式文件:以字节 B 为单位
- 记录式文件
- 连续文件
- 链接文件
- 索引文件
- 散列文件
存储物理结构:文件实际存储在磁盘中的结构
- 连续分配:支持随机访问,不易于扩展,存在外部碎片
- 链式分配:分为隐式和显式(链接表 FAT,不支持重名),无外部碎片
- 索引分配:既支持随机访问,也易于扩展
文件控制块:FCB,类似于 PCB,一个文件对应一个
索引节点:FCB 的简化版本,为了减少内存占用(当文件打开后,其 FCB 将被复制到内存中的文件打开表),同样每个文件对应一个索引结点
在索引结构下,每个文件都有一张索引表,记录其每个索引记录的逻辑地址,注意是逻辑地址,物理地址的转换涉及存储管理和硬件(上一章的内容)
- 且索引结构下索引结点的地址项记录的是该文件索引表的始地址
文件的硬链接、软链接
- 软链接的计数器单独存在,初始化为 1,原文件删除后不影响软链接计数器
- 硬链接的计数器初始化为 n+1,n 为建立连接前原文件计数器 count 的取值,当硬链接的文件被删除一份时,count 减一
文件的数量上限,和页面数量上限类似,与地址编码有关,如若记录索引结点的地址位数为 4B,即 32 位,则文件最多有 2^32 个
目录管理
文件目录:用于存放各文件的 FCB 或索引结点信息,同时也是一个文件,叫做目录文件
二级目录:允许重名,但不能对文件分类,缺乏灵活性
树形目录:会增加访问磁盘的次数
文件系统
用户权限和文件权限共同实现对文件的保护功能
从用户角度看,操作系统引入文件系统的目的是:实现对文件按名存取
外存空间管理:空闲磁盘管理
- 空闲表法
- 空闲链表法
- 位示图:位示图法只能用在空闲磁盘空间的管理
- 成组链接法:UNIX
注意 FAT(文件分配表)也可以用于管理空闲和非空闲的磁盘空间,但不允许同名文件
- 记得吗,在文件的逻辑结构中,显式链接文件(静态链表)结构,next 指向下一个空闲块,若 next < 0 则说明块被占用
动态分区存储管理(上一章的),最佳适应算法那里,记得不,为什么我会写在这?
虚拟文件系统:VFS
- 超级块对象
- 索引结点对象
- 目录项对象
- 文件对象
外设管理
I/O 管理
I/O 设备实际上属于一种特殊的文件管理,OS 将其作为文件进行管理
缓冲技术:为了解决 CPU 和设备速度不匹配问题
- 单缓冲区
- 双缓冲区
- 缓冲池
计算任务最快时间,类似流水线的计算方法,着眼于当前状态到下一同一状态所经时间
设备独立性软件
设备无关性:用户在编程时使用的设备和实际的物理设备无关(设备无关性和设备独立性是一个东西)
SPOOLing 技术
- 输入输出井
- 输入输出缓冲区
- 输入输出进程
SPOOLing 的特点
- 加快作业执行速度
- 使独占设备虚拟为共享设备
- 无需独占设备
但注意,虽然是使成为共享设备,但实际上实现的是物理设备的虚拟分配
文件系统和设备驱动程序之间的接口:设备开关表
磁盘管理
磁盘调度算法
- 先来先服务:FCFS
- 最短寻道时间优先:SSTF
- 电梯调度算法:SCAN
- 优化的电梯调度算法:C-SCAN
读写磁盘最重要的耗时:寻道时间
分布式和网络操作系统
什么是分布式 OS:指把多个处理机通过线路互联而构成的统一的系统,该系统的处理和控制分布在各个处理机上
主要特点:分布性、自治性、模块性、并行性
主要功能:数据迁移、分布式进程同步、任务分配、资源管理
分布式 OS 和网络 OS 的主要区别
- 通信和资源方面:分布式 OS 透明性强,系统中节点无主从之分,都可以共享系统中全部资源,多个节点间共同协作完成同一任务;而网络 OS 共享同一个服务器资源
- 故障处理方面:当分布式 OS 单节点机出现故障时,系统仍可使用