第五章 设备管理
5.1 I/O系统
5.1.1 I/O设备
1.I/O设备的类型
性能指标: (1) 设备使用特性、 (2) 数据传输速率
(3) 数据的传输单位、 (4) 设备共享属性
(1) 按设备的使用特性分类:存储设备、输入/输出设备
(2) 按传输速率分类:低速、中速、高速设备
· (3) 按信息交换的单位分类:块设备、字符设备
(4) 按设备的共享属性分类:独占、共享、虚拟
2.设备与控制器之间的接口
5.1.2 设备控制器
1.设备控制器的基本功能
2.设备控制器的组成
(1) 设备控制器与处理机的接口
(2) 设备控制器与设备的接口
(3) I/O逻辑
5.1.3 I/O通道
1.I/O通道(I/O Channel)设备的引入
其所能执行的命令主要局限于与I/O操作有关的指令, 通道与CPU共享内
2.通道类型
(1) 字节多路通道:低速
(2) 数组选择通道:高速、利用率低
(3) 数组多路通道:高速、利用率高
3.瓶颈问题
解决“瓶颈”问题的最有效的方法,是增加设备到主机间的通路而不增加通道
5.1.4 总线系统
1.局部总线
更高的传输速率
5.2 I/O控制方式
5.2.1 程序I/O方式: 忙—等待方式
5.2.2 中断驱动I/O控制方式: 用于块设备的I/O,显然是极其低效的
5.2.3 直接存储器访问(DMA)I/O控制方式
1.DMA(Direct Memory Access)控制方式的引入: 提高了CPU与I/O设备的并行操作程度。
2.DMA控制器的组成
(1)主机与DMA控制器的接口
(2)DMA控制器与块设备的接口
(3)I/O控制逻辑
3.DMA工作过程
5.2.4 I/O通道控制方式
1.I/O通道控制方式的引入: 可实现CPU、通道和I/O设备三者的并行操作
2.通道程序
通道程序是由一系列通道指令所构成:操作码、内存地址、计数、通道程序结束位P、记录结束标志R
5.3 缓冲管理
5.3.1 缓冲的引入
1) 缓和CPU与I/O设备间速度不匹配的矛盾
2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
3) 提高CPU和I/O设备之间的并行性
5.3.2 单缓冲和双缓冲
1.单缓冲(Single Buffer)
2.双缓冲(Double Buffer)
5.3.3 循环缓冲
1.循环缓冲的组成
(1)多个缓冲区,其每个缓冲区的大小相同。
(2) 多个指针
2.循环缓冲区的使用
(1) Getbuf过程: 使用缓冲区中的数据时
(2) Releasebuf过程:进程把C缓冲区中的数据提取完毕时,将缓冲区释放
3.进程同步
(1) Nexti指针追赶上Nextg指针:输入数据的速度大于计算进程处理数据的速度,输入进程应阻塞。
(2) Nextg指针追赶上Nexti指针:输入数据的速度低于计算进程处理数据的速度,计算进程只能阻塞。
5.3.4 缓冲池
1.缓冲池的组成
① 空(闲)缓冲区
② 装满输入数据的缓冲区
③ 装满输出数据的缓冲区
2.Getbuf过程和Putbuf过程
(1) Addbuf(type,number)过程
用于将由参数number所指示的缓冲区B挂在type队列上。
(2) Takebuf(type)过程
用于从type所指示的队列的队首摘下一个缓冲区。
互斥信号量MS(type):为使诸进程能互斥地访问缓冲池队列,可为每一队列设置一个。
资源信号量RS(type):为了保证诸进程同步地使用缓冲区,又为每个缓冲队列设置了一个。
3.缓冲区的工作方式
(1)收容输入 (2)提取输入
(3)收容输出 (4)提取输出
5.4 I/O软件
5.4.1 I/O软件的设计目标和原则
I/O软件的目标:解决由于外部设备与CPU速度不匹配所引起的问题,提高主机和外设的并行工作能力,提高系统效率。
I/O软件设计的重要原则:设法消除或屏蔽设备硬件内部的低级处理过程,为用户提供一个简便、易用、抽象的逻辑设备接口,保证用户安全、方便地使用各类设备。
具体来说,I/O软件应达到以下几个目标:
I/O 软件组织成四个层次:
1) 用户层软件
2) 设备独立性软件
3) 设备驱动程序
4) 中断处理程序
5.4.2 中断处理程序
1.唤醒被阻塞的驱动(程序)进程
2.保护被中断进程的CPU环境
3.转入相应的设备驱动程序
4.中断处理
5.恢复被中断进程的现场
5.4.3 设备驱动程序
主要任务: 接收上层软件发来的抽象I/O要求,将由设备控制器发来的信号传送给上层软件。
1.设备驱动程序的功能
(1) 接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求
(2) 检查用户I/O请求的合法性
(3) 发出I/O命令
(4) 及时响应由控制器或通道发来的中断请求
(5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。
· 3.设备驱动程序的特点
4.设备驱动程序的处理过程
5.4.4 设备独立性软件
1.设备独立性的概念:在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。
好处:设备分配时的灵活性、易于实现I/O重定向、
2.设备独立性软件
(1) 执行所有设备的公有操作。
(2) 向用户层(或文件层)软件提供统一接口
3.逻辑设备名到物理设备名映射的实现
(1) 逻辑设备表
(2) LUT的设置问题
5.4.5 用户层的I/O软件
用户层软件必须通过一组系统调用来取得操作系统服务
5.5 设备分配
5.5.1 设备分配中的数据结构
1.设备控制表(DCT)
2.控制器控制表、通道控制表和系统设备表
(1) 控制器控制表(COCT)
(2) 通道控制表(CHCT)
(3) 系统设备表(SDT)
5.5.2 设备分配时应考虑的因素
① 设备的固有属性:独占性、共享性、可虚拟设备、
② 设备分配算法:先来先服务、优先级高者优先
③ 设备分配时的安全性:安全分配方式、不安全分配方式
④设备独立性
5.5.3 独占设备的分配程序
1.基本的设备分配程序
1) 分配设备
2) 分配控制器
3) 分配通道
2.设备分配程序的改进
(1) 增加设备的独立性
(2) 考虑多通路情况
5.5.4 SPOOLing技术
2.SPOOLing系统的组成
(1)输入井和输出井
(2) 输入缓冲区和输出缓冲区
(3)输入进程SPi和输出进程SPo
3.共享打印机
4.SPOOLing系统的特点
(1) 提高了I/O的速度。
(2) 将独占设备改造为共享设备。
(3) 实现了虚拟设备功能。
5.6 磁盘存储器的管理
5.6.1 磁盘性能简述
1.数据的组织和格式
2.磁盘的类型
1) 固定头磁盘
2) 移动头磁盘
3.磁盘访问时间
1) 寻道时间Ts
2) 旋转延迟时间Tr
3) 传输时间Tt
5.6.2 磁盘调度
1.先来先服务(FCFS,First Come First Served)
2.最短寻道时间优先(SSTF,Shortest Seek Time First)
3.扫描(SCAN)算法
4.循环扫描(CSCAN)算法
第六章 文件管理
6.1 文件和文件系统
6.1.1 文件、记录和数据项
1.数据项:基本数据项、组合数据项
2.记录:记录是一组相关数据项的集合
3.文件:文件是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
属性:类型、长度、物理位置、建立时间
6.1.2 文件类型和文件系统模型
1.类型
用途分类:系统、用户、库文件。
数据形式分类:源文件、目标文件、可执行文件。
存取控制属性分类:只执行、只读、读写。
按组织形式和处理方式分类:普通、目录文件、特殊文件
2.文件系统模型
1) 对象及其属性
2) 对对象操纵和管理的软件集合
3) 文件系统的接口
6.1.3 文件操作
1.最基本的文件操作
创建、删除、读、写、阶段、设置文件读写位置
2.文件的“打开”和“关闭”操作
打开:从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引)返回给用户。
“关闭”(close)系统调用来关闭此文件,OS将会把该文件从打开文件表中的表目上删除掉。
3.其它文件操作
有关对文件属性进行操作的
有关目录的
6.2 文件的逻辑结构
6.2.1 文件逻辑结构的类型
1.有结构文件
(1)定长记录
(2) 变长记录:① 顺序文件② 索引文件③ 索引顺序文件
2.无结构文件
6.2.2 顺序文件
1.逻辑记录的排序
(1)串结构
(2)顺序结构
2.对顺序文件(Sequential File)的读/写操作
3.顺序文件的优缺点
只有顺序文件才能存储在磁带上,并能有效地工作。
性能就可能很差,如果想增加或删除一个记录都比较困难。
6.2.3 索引文件
顺序地查找每个记录,从中获得相应记录的长度Li
为变长记录文件建立一张索引表,对主文件中的每个记录,在索引表中设有一个相应的表项。索引表本身是一个定长记录的顺序文件。
6.2.4 索引顺序文件
将顺序文件中的所有记录分为若干个组,在索引表中为每组中的第一个记录建立一个索引项。
6.2.5 直接文件和哈希文件
1.直接文件
可根据给定的记录键值,直接获得指定记录的物理地址。
2.哈希(Hash)文件
目前应用最为广泛的一种直接文件。通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针。
6.3 外存分配方式
6.3.1 连续分配
1.连续分配方式要求为每一个文件分配一组相邻接的盘块。
2.连续分配的主要优缺点
优点:(1) 顺序访问容易。(2) 顺序访问速度快。
缺点:(1) 要求有连续的存储空间。(2) 必须事先知道文件的长度。
6.3.2 链接分配
1.隐式链接
在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。
只适合于顺序访问,对随机访问是极其低效的。其可靠性较差。
2.显式链接
6.4 目录管理
要求:(1)实现“按名存取”(2) 提高对目录的检索速度(3) 文件共享(4)允许文件重名
6.4.1 文件控制块和索引结点
1. 文件控制块FCB:三类信息,即:基本信息、存取控制信息、使用信息
1) 基本信息类
① 文件名② 文件物理位置③ 文件逻辑结构④ 文件的物理结构
2) 存取控制信息类
文件主的存取权限、核准用户的存取权限、 一般用户的存取权限
3) 使用信息类
文件的建立日期和时间、文件上一次修改的日期和时间、当前使用信息
2.索引结点
1) 索引结点的引入
2) 磁盘索引结点
3) 内存索引结点
6.4.2 目录结构
1.单级目录结构
在整个文件系统中只建立一张目录表,每个文件占一个目录项。
优点是简单且能实现目录管理的基本功能——按名存取
缺点: (1)查找速度慢。(2)不允许重名。(3)不便于实现文件共享
2.两级目录结构
优点:(1) 提高了检索目录的速度(2)在不同的用户目录中,可以使用相同的文件名。(3)不同用户还可使用不同的文件名来访问系统中的同一个共享文件。
3.多级目录结构
1) 目录结构
2) 路径名
3) 当前目录
4.增加和删除目录
(1) 不删除非空目录
(2) 可删除非空目录
6.4.3 目录查询技术
1.线性检索法
2.Hash方法
6.5 文件存储空间的管理
6.5.1 空闲表法和空闲链表法
1.空闲表法
1) 空闲表
2) 存储空间的分配与回收
2.空闲链表法
(1) 空闲盘块链
(2) 空闲盘区链。
6.5.2 位示图法
1.位示图
2.盘块的分配
3.盘块的回收
(1) 将回收盘块的盘块号转换成位示图中的行号和列号。
(2) 修改位示图
6.5.3 成组链接法
1.空闲盘块的组织
2.空闲盘块的分配与回收
6.6 文件共享与文件保护
6.6.1 基于索引结点的共享方式
6.6.2 利用符号链实现文件共享
6.6.3 磁盘容错技术
影响文件安全性的主要因素:人为、系统、自然。
措施:存取控制机制、磁盘容错技术、后备系统
1.第一级容错技术SFT-Ⅰ
1) 双份目录和双份文件分配表
2) 热修复重定向和写后读校验
2.第二级容错技术SFT-Ⅱ
1) 磁盘镜像(Disk Mirroring)
2) 磁盘双工(Disk Duplexing)
3.基于集群技术的容错功能
1) 双机热备份模式
2) 双机互为备份模式
3) 公用磁盘模式
6.7 数据一致性控制