《《精编》计算机外部设备管理》由会员分享,可在线阅读,更多相关《《精编》计算机外部设备管理(72页珍藏版)》请在金锄头文库上搜索。
1、第7章设备管理 安徽理工大学计算机系 第7章外部设备管理 7 1引言7 2缓冲技术7 3设备分配7 4设备控制7 5磁盘设备管理7 6设备管理举例 外设的特点 种类多差异大 控制和速度 外设管理目的包括 外设资源的控制外设资源的共享提高外设资源的利用率 7 1引言 7 1 1外部设备类型和特征7 1 2I O控制技术7 1 3外设管理的目的和功能7 1 4外设管理结构 7 1 1外部设备类型和特征 1 按交互对象分类人机交互设备 视频显示设备 键盘 鼠标 打印机与计算机或其他电子设备交互的设备 磁盘 磁带 传感器 控制器计算机间的通信设备 网卡 调制解调器 2 按交互方向分类 输入 可读 键盘
2、 扫描仪输出 可写 显示设备 打印机输入 输出 可读写 磁盘 网卡 3 按外设特性分类使用特征 存储 输入 输出 终端数据传输率 低速 如键盘 中速 如打印机 高速 如网卡 磁盘 信息组织特征 字符设备 如打印机 块设备 如磁盘 7 1 1外部设备类型和特征 4 按设备的共享属性分类 1 独占设备 它是指在一段时间内只允许一个用户 进程 访问的设备 即临界资源 因而 对多个并发进程而言 应互斥地访问这类设备 系统一旦把这类设备分配给某后 便由该进程独占 直至用完释放 应当注意 独占设备的分配有可能引起进程死 7 1 1外部设备类型和特征 2 共享设备 它是指在一段时间内允许多个进程同时访问的设
3、备 当然 时刻而言 该类设备仍然只允许一个进程访问 显然 共享设备必须是可寻址的相可随访问的设备 典型的共享设备是磁盘 对共享设备不仅可获得良好的设备莉用率 而且实现文件系统和数据库系统的物质基础 3 虚拟设备 它是指通过虚拟技术将一占设备变换为若干台逻辑设备 供若干个用户 进程 同时使用 通常把这种经过虚拟技术处理后的设备 称为虚拟设备 7 1 2I O控制技术 1 程序控制I O programmedI O I O操作由程序发起 并等待操作完成 数据的每次读写通过CPU 缺点 在外设进行数据处理时 CPU只能等待 2 中断驱动方式 interrupt drivenI O I O操作由程序发
4、起 在操作完成时 如数据可读或已经写入 由外设向CPU发出中断 通知该程序 数据的每次读写通过CPU 优点 在外设进行数据处理时 CPU不必等待 可以继续执行该程序或其他程序 缺点 CPU每次处理的数据量少 通常不超过几个字节 只适于数据传输率较低的设备 3 直接存储访问方式 DMA 由程序设置DMA控制器中的若干寄存器值 如内存始址 传送字节数 然后发起I O操作 而后者完成内存与外设的成批数据交换 在操作完成时由DMA控制器向CPU发出中断 优点 CPU只需干预I O操作的开始和结束 而其中的一批数据读写无需CPU控制 适于高速设备 4 通道控制方式 ChannelI O 通道又称为I O
5、处理机 它能完成主存储器和外设之间的信息传输 并与中央处理机并行操作 采用通道技术解决了I 0操作的独立性和各部件工作的并行性 通道把中央处理机从繁琐的输入输出操作中解放出来 采用通道技术后 不仅能实现CPU和通道的并行操作 而且通道与通道之间也能实现并行操作 各通道上的外围设备也能实现并行操作 从而可达到提高整个系统的效率之根本目的 7 1 2I O控制技术 通道控制器 ChannelProcessor 有自己的专用存储器 可以执行由通道指令组成的通道程序 因此可以进行较为复杂的I O控制 如网卡上信道访问控制 通道程序通常由操作系统所构造 放在内存里 优点 执行一个通道程序可以完成几批I
6、O操作 具有通道结构的计算机系统 主存 通道 控制器和设备之间采用四级连接 实施三级控制 图为单通路I O系统结构 7 1 2I O控制技术 7 1 2I O控制技术 字节多路通道 它是为连接大量慢速外围设备 如纸带输入机 纸带输出机 卡片输入机 卡片输入机 行式打印机等设置的 选择通道 selectorchannel 可以连接多个外设 而一次只能访问其中一个外设 多路通道 multiplexorchannel 可以并发访问多个外设 分为字节多路 byte 和数组多路 block 通道 7 1 2I O控制技术 I O控制的通道控制方式 7 1 2I O控制技术 7 1 2I O控制技术 如上
7、图可见 设备E F G H均有四条通路到达主存 例如设备E到达主存的四条通路是 通道A 控制器C 设备E通道A 控制器D 设备E通道B 控制器C 设备E通道B 控制器D 设备E 7 1 3外设管理的目的和功能 1 外设管理目的提高效率 提高I O访问效率 匹配CPU和多种不同处理速度的外设方便使用 方便用户使用 对不同类型的设备统一使用方法 协调对设备的并发使用方便控制 方便OS内部对设备的控制 增加和删除设备 适应新的设备类型 7 1 3外设管理的目的和功能 2 外设管理功能动态地掌握并记录设备的状态 在设置有通道的系统中 还应掌握通道 控制器的使用状态 完成实际的I O操作首先 设备管理程
8、序根据用户提出的I O请求构成相应的通道程序 或称I O程序 提供给通道执行 其次 启动指定的设备进行I O操作 最后 对通道发来的中断请求作出及时的响应和处理 7 1 3外设管理的目的和功能 提供设备使用的用户接口 命令接口和编程接口设备分配和释放 使用设备前 需要分配设备和相应的通道 控制器 设备的访问和控制 包括并发访问和差错处理 I O缓冲和调度 目标是提高I O访问效率 7 1 3外设管理的目的和功能 设备管理软件 为实现上述基本功能通常由以下程序组成 I O交通管制程序 I O调度程序 即设备分配程序 I O设备处理程序 通常每类设备都有自己的I O设备处理程序 7 2I O缓冲技
9、术 缓冲技术可提高外设利用率 尽可能使外设处于忙状态 但有一个限制 进程的I O请求不能超过外设的处理能力 引入缓冲的主要原因有以下几个方面 1 缓和CPU与I O设备间速度不匹配的矛盾 2 减少对CPU的中断频率 放宽对中断响应时间的限制 3 提高CPU和I O设备之间的并行性 7 2I O缓冲技术 1 引入缓冲技术的目的匹配CPU或用户应用进程与外设的不同处理速度减少对CPU的中断次数 提高CPU和I O设备之间以及各个I O设备之间的处理并行性 因此 缓冲区所在的位置 内存 控制器或外设 这些在不同位置的缓冲区组合在一起 构成多级缓冲机制 7 2I O缓冲技术 2 单方向缓冲单缓冲 si
10、nglebuffer 一个缓冲区 CPU和外设轮流使用 一方处理完之后接着等待对方处理 双缓冲 doublebuffer 两个缓冲区 CPU和外设都可以连续处理而无需等待对方 要求CPU和外设的速度相近 环形缓冲 circularbuffer 多个缓冲区 CPU和外设的处理速度可以相差较大 7 2I O缓冲技术 1 环形缓冲的组成 1 多个缓冲区在循环冲中含有多个缓冲区 每个缓冲区的大小相同 缓冲区可分成三种类型 空缓冲区R 用于存放输入数据 已装满数据的缓冲区G 其中的数据提供给计算进程使用 现行工作缓冲区C 这是计算进程正在使用的缓冲区 循环缓冲的组成如下图所示 7 2I O缓冲技术 空缓
11、冲区R 已装满数据的缓冲区G 现行工作缓冲区C 循环缓冲 7 2I O缓冲技术 2 多个指针对用于输入的多缓冲 应设置这样三个指针 Nextg 指示计算进程下一个可用的缓冲区G Nexti 指示输入进程下次可用的空缓冲区R Current 指示计算进程正在使用的缓冲区单元 开始时 它指向第一个单元 随计算进程的使用 它将逐次地指向第2个单元 第3 4等单元 直至缓冲区的最后一个含数据的单元 7 2I O缓冲技术 2 缓冲区的使用计算进程和输入进程可利用下述两个过程使用循环缓冲区 1 Getbuf过程每当计算进程要使用缓冲区中的数据时 可调用Getbuf过程 该过程将指针Nextg所指的缓冲区提
12、供给进程使用 相应地 须把它改为现行工作缓冲区 用Cment指针指简该缓冲区的第1个单元 同时将Nextg移向下一个G缓冲区 类似地 每当输入避程要使用空缓冲来装入数据时 也可调用Getbuf过程 由该过程将指针Nexti所指缓冲区提供给输入进程使用 同时将Nexti指针移向下一个R缓冲区 7 2I O缓冲技术 2 Releasebuf过程当计算进程把G缓冲区中的数据提取完时 便可调用Releasebuf过程 将该缓冲区释放 此时 把该缓冲区由当前 现行 工作缓冲区C改为空缓冲区R 类似地 当输入进程将缓冲区装满时 也调用Releasebuf过程 将该缓冲区释放 并改为G缓冲区 7 2I O缓
13、冲技术 3 进程的同步使用输入缓冲可使输入进程和计算进程并行执行 相应地 指针Nexti和指针Nextg将不断地沿顺时针方向移动 这样就可能出现下述两种情况 1 Nexti指针追赶上Nextg指针这意味着输入进程输入数据的速度大于计算进程处理数据的速度 已把全部缓冲区 可用空缓冲 装满 此时 输入进程应该阻塞 直至计算进程把某个缓冲区中数据全部提取完 使之成为空缓冲R 并调用Releasebuf过程将它释放时 这种情况被称为系统受计算限制 7 3设备分配 由于外设资源的有限 需解决进程间的外设共享问题 以提高外设资源的利用率 设备分配是对进程使用外设过程的管理 这里有两种作法 1 在进程间切换
14、使用外设 如键盘和鼠标 2 通过一个虚拟设备把外设与应用进程隔开 只由虚拟设备来使用设备 7 3 1设备分配数据结构7 3 2设备分配原则7 3 3假脱机技术 7 3 1设备分配数据结构 设备控制表 DCT DeviceControlTable 每个设备一张 描述设备特性和状态 反映设备的特性 设备和控制器的连接情况 DCT的内容主要包括 设备标识 用来区别不同的设备 设备类型 反映设备的特性 如 块设备或字符设备 设备配置 I O地址等 设备状态 工作或空闲状态 等待队列 等待使用该设备的进程队列 7 3 1设备分配数据结构 系统设备表 SDT SystemDeviceTable 系统内一张
15、 反映系统中设备资源的状态 记录所有设备的状态及其设备控制表的入口 SDT表项的主要组成 DCT指针 指向相应设备的DCT 设备使用进程标识 正在使用该设备的进程标识 DCT信息 为引用方便而保存的DCT信息 如 设备标识 设备类型等 7 3 1设备分配数据结构 控制器控制表 COCT COntrollerControlTable 每个设备控制器一张 描述I O控制器的配置和状态 如DMA控制器所占用的中断号 DMA数据通道的分配 通道控制表 CHCT CHannelControlTable 每个通道一张 描述通道工作状态 7 3 2设备分配原则 设备分配原则是合理使用外设 公平和避免死锁 提
16、高设备利用率 引入I O调度程序 来满足I O请求 决定设备的分配策略 与设备分配有关的设备属性 独享设备 打印机等 共享设备 磁盘 网卡等 设备分配方式 各有优缺点静态分配 在进程分创建时分配 在进程退出时释放 不会出现死锁 设备利用率不高 7 3 2设备分配原则 动态分配 在进程执行过程中根据需要分配 使用结束后释放 需要考虑死锁问题有利于提高设备利用率动态分配策略 针对特定设备采用特定的分配策略先来先服务 FCFS 按I O请求的先后顺序 排成I O请求命令队列 按FCFS分配设备 基于优先级 依据进程的优先级 指定I O请求的优先级 排成不同优先级队列 按优先级高低分配设备 7 3 2设备分配原则 设备分配的安全性为了加快进程推进的速度 使CPU和I O设备能并行工作 应使某些进程发出I O请求之后 仍可以继续运行 需要时又可以发出第二个I O请求 第三个I O请求 仅当进程所请求的设备已经为另外一个进程占用时才进入阻塞状态 这样就可以同时操作多个外部设备 但是 这种多请求方式 会导致设备分配不安全 又可能产生死锁现象 因此 再多请求方式中 设备分配应该保证安全而不出现死锁