| 第六章 文件系统
外部存储器
长期保存大量的数据,顺序存取设备、随机存取设备
硬件基础——磁盘
物理地址参数(CHS),一个柱面的存储量为heads×sectors个块(扇区),一个磁道的存储量为sectors个块(扇区)
磁化物质(存储单元)分布于一条形的承载介质上。用磁化方向来表示一位二进制数。不同数据段之间用特殊编码的间隙隔开。
磁带不支持按地址访问,只能够一次访问数据,并且根据跨越的间隙个数来确定数据段位置。
文件系统
操作系统封装IO操作,并且向用户提供文件系统。目的:向用户隐藏各种外存储设备的特性差异,提供统一的访问方式;便于实现信息的存储、加工、共享等行为。
有效的文件系统应当具备的功能有:文件内容的组织、文件与目录管理、存储空间管理、系统的命令接口与程序接口、文件的共享与安全性保障。
文件的分类
文件按其性质分为:系统文件、库文件、用户文件。存取控制分为:只读文件、读写文件、可执行文件、隐藏文件。作用分为:普通文件、目录文件、设备文件。内容分为:文本文件、二进制文件。逻辑结构分为:流式文件、记录式文件。
逻辑块号
block=block0+heads×sectors×(c-c0)+sectors×(h-h0)+s-s0
→ s=(block-block0+s0-1)%sectors+1, h=((block-block0+s0-1)/sectors+h0)%heads, c=((block-block0+s0-1)/sectors+h0)/heads+c0,
文件的物理结构
连续结构:管理简单,存储速度快,但需要连续空间,降低了存储器利用率,不利于文件的修改
链接结构:无需连续空间,提高存储器利用率,方便文件修改,但是无法直接定位文件中的位置,只能顺序查找,破坏了文件完整性
FAT系列文件系统中采用改进的链接结构,将指针信息从实际存储数据的物理块中分离。并记录到文件分配表(FAT)中。
值0表示空闲,值FFFF全1表示该块为文件尾,值FFF7表示该块损坏,其他值指示该块中的文件的下一块地址。
索引结构:无须连续空间,方便文件修改,随机存取,但是索引表占用存储空间,常用多级索引,检索时的时间开销大。
文件控制块(FCB)
存储于外存,包含描述信息部分,管理信息部分。
短文件名、长文件名、13个
文件目录及其结构
- 单级结构
都保存在一个目录。检索范围大,影响存取时间;任何两个文件都不能重名。
- 二级结构
二级目录结构中存在一个系统主目录(MFD)和多个用户文件目录(UFD),MFD存放UFD的FCB,UFD存放用户文件的FCB。
结构简单,容易实现,一定程度上减少了检索的开销,解决了不同用户之间的重名问题,容易实现用户之间的文件共享,但是拥有多文件的UFD检索开销大,同个UFD文件下不能重名。
- 多级目录
…是当前目录的父目录
- UNIX的文件目录结构
BFD(基本文件目录):记录标识与FCB的对应关系。SFD(符号文件目录):记录文件名(目录名)同标识的对应关系。
搜索文件或子目录的开销减小,(无搜索的)文件访问开销增大
文件存储空间管理:位示图法、空闲块表法(连续空闲块个数受限制)、空闲块链表法(只能连续分配、分配与回收空闲块需要一次额外的外存访问)。UNIX改进的空闲块链表法(改进了额外访问的问题)。
文件共享
允许不同用户或者不同进程访问同一个文件,实现用户或进程之间的信息共享和任务协作;避免因各用户或进程各自保存数据,造成的外存储器额外开销。
文件共享的方法
- 绕道法
通过公开需要共享的文件的路径,优点:实现简单。缺点:文件路径必须公开,并且只能使用相同的路径与文件名进行访问。
- 链接法
通过将不同的FCB指向相同的外存位置,使不同用户(进程)访问到一个实际上相同的文件。(不同FCB但指向同一个)
- 基本文件目录法
在SFD中将一个文件标识对应于不同的访问路径,从而使不同用户(进程)找到实际相同的FCB,从而访问同个文件(用同一个FCB)
文件共享语义
三种基本的共享语义:Unix语义,系统按照读写操作的顺序依次执行读写操作。会话语义:进程打开文件时建立会话,会话期间的修改操作仅对进程自身可见,当文件关闭时结束会话,此时这些修改才会对其他进程可见。永久文件语义:创建文件时可对文件做一次编辑,一旦关闭文件则文件变为只读状态。
文件的保护
备份:定期备份,完全备份、增量式备份;活动备份,修改文件时同时操作多个存储设备上的文件副本,当一个存储设备损坏时可以从其他设备上取得文件。
文件的保密
完备性、保护性、行为正确性、强制访问策略MAC(全局安全级别)、自主访问策略DAC(存取控制矩阵、存取控制表、权能表)
| 第七章 设备管理
数据传输控制
通过控制底层信号传递来实现主机与设备间数据传输,以满足用户/程序的IO请求。方式的进化主要为了减少CPU等待时间、减轻CPU负担,提高系统并行性。
- 程序查询方式
进程提出IO请求并且获得设备后,IO子程序将不断循环检测设备的状态,直到设备满足IO操作要求时实施一个传输动作。
- 中断方式
进程提出请求获得设备后,设备未就绪,阻塞进程;设备就绪发出中断信号,中断处理程序唤醒进程,启动一个传输操作,而后再阻塞进程直到设备再次就绪。
- DMA方式
DMA控制指定内存区域同设备之间的数据交换。
- 通道方式
通道处理器从CAW中找到通道程序,并且按照通道程序的指令完成数据传输过程,通道状态写入CSW。错误发送错误中断,顺利执行发出完成中断。
① 程序查询方式依靠处理器循环检测获取设备状态,当设备未就绪时浪费处理器资源,降低了系统效率。(1 分)
② 中断方式采用中断机制获得设备状态,使得设备与处理器并行运作(1 分);但对于块设备的 IO 操作,处理器还需要参与 IO 传输过程,使处理器利用率下降。(1 分)
③ DMA 方式使用 DMA 控制器控制 IO 传输,使得处理器无需参与传输过程(1 分);但由于 DMA 与处理器共享总线,当 DMA 使用总线时处理器无法使用总线,从而影响处理器利用率。(1 分)
设备的分配与回收
SDT、DCT、COCT、CHCT
IO缓冲技术
应用于两种速度不一致的部件之间的操作,一般形式是以缓冲区来暂时存放需要交换的信息。目的在于保证正确性和提高效率。
移臂调度算法
移动距离/跨越柱面、磁头改变方向次数
先来先服务(FCFS)、最短寻道优先(SSTF)、扫描(SCAN)、电梯(Elevator)