输入输出设备管理.ppt

上传人:xt****7 文档编号:4017736 上传时间:2019-12-30 格式:PPT 页数:73 大小:4.35MB
返回 下载 相关 举报
输入输出设备管理.ppt_第1页
第1页 / 共73页
输入输出设备管理.ppt_第2页
第2页 / 共73页
输入输出设备管理.ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
计算机操作系统主讲 四川大学计算机学院杜忠军 第八章设备管理 DevicesManagement 教学目的 设备管理不但要管理实际I O操作的设备 如磁盘机 打印机 还要管理诸如设备控制器 DMA控制器 中断控制器 I O处理机 通道 等支持设备 设备管理包括各种设备分配 缓冲区管理和实际物理I O设备操作 通过管理达到提高设备利用率和方便用户 教学要求 了解设备的分类 熟悉设备管理的目标和功能 熟悉程序I O方式 中断方式 DMA方式和通道方式四种I O的控制方式 掌握通道的概念 熟悉通道类型 熟悉缓冲的概念 熟悉单缓冲 双缓冲和多缓冲和缓冲池工作原理 了解在进行设备分配时应考虑的设备的固有属性 设备的分配算法 设备分配的安全性和设备的独立性等因素 掌握设备分配中数据结构 熟悉设备分配的流程 掌握SPOOLing技术概念和SPOOLing系统的组成 熟悉设备处理程序的功能和处理方式 熟悉设备处理程序的处理过程 本章的主要内容如下 输入 输出系统设备控制器输入 输出控制方式缓冲管理输入 输出软件设备分配与回收 8 1输入输出系统 8 1 1I O系统1 大型机通道系统 图8 1大型计算机组织结构 图8 2通过网络共享系统之间的设备 8 1 1I O系统 1 2 小型计算机和微型计算机总线系统 图8 3小型机总线的组织结构 8 1 1I O系统 2 1984年推出的工业标准结构ISA IndustryStandardArchitecture 总线 其带宽为2Mb s 适用于处理器为80286的计算机 1988年推出的扩展工业标准结构EISA ExpansionIndustryStandardArchitecture 总线 带宽可以达到32Mb s 适用于处理器为80386类的计算机 1990年 为了适应多媒体 高质量图形处理技术和网络应用 推出了适合处理器为80486类计算机的VESA VideoElectronicStandardAssociation 总线 带宽增加到132Mb s 1992年 随着Pentium系列CPU的出现 单总线结构已经不能满足系统性能要求 推出了的具有全局总线和局部总线的PCI总线 如图8 4所示 8 1 1I O系统 3 图8 4通用计算机组织结构 8 1 2设备分类 I O设备的种类繁多 从OS观点来看 其重要的性能指标有 数据传输速率 数据的传输单位 设备的共享属性等 1 按传输速率分类低速设备 指传输速率为每秒钟几个字节到数百个字节的设备 典型的设备有键盘 鼠标 语音的输入等 中速设备 指传输速率在每秒钟数千个字节至数十千个字节的设备 典型的设备有行式打印机 激光打印机等 高速设备 指传输速率在数百千个字节至数兆字节的设备 典型的设备有磁带机 磁盘机 光盘机等 8 1 2设备分类 1 2 按信息交换的单位分类块设备 BlockDevice 指以数据块为单位来组织和传送数据信息的设备 这类设备用于存储信息 有磁盘和磁带等 它属于有结构设备 典型的块设备是磁盘 每个盘块的大小为512B 4KB 磁盘设备的基本特征是 传输速率较高 通常每秒钟为几兆位 它是可寻址的 即可随机地读 写任意一块 磁盘设备的I O采用DMA方式 字符设备 CharacterDevice 指以单个字符为单位来传送数据信息的设备 这类设备一般用于数据的输入和输出 有交互式终端 打印机等 它属于无结构设备 字符设备的基本特征是 传输速率较低 不可寻址 即不能指定输入时的源地址或输出时的目标地址 字符设备的I O常采用中断驱动方式 8 1 2设备分类 2 3 按资源分配的角度分类独占设备 指在一段时间内只允许一个用户 进程 访问的设备 大多数低速的I O设备 如用户终端 打印机等属于这类设备 因为独占设备属于临界资源 所以多个并发进程必须互斥地进行访问 共享设备 指在一段时间内允许多个进程同时访问的设备 显然 共享设备必须是可寻址的和可随机访问的设备 典型的共享设备是磁盘 共享设备不仅可以获得良好的设备利用率 而且是实现文件系统和数据库系统的物质基础 虚拟设备 指通过虚拟技术将一台独占设备变换为若干台供多个用户 进程 共享的逻辑设备 一般可以利用假脱机技术 SPOOLing技术 实现虚拟设备 8 1 3设备管理的目标和功能 1 设备管理的目标提高设备的利用率 为此 应尽量提高CPU与I O设备之间的并行操作程度 主要利用的技术有 中断技术 DMA技术 通道技术 缓冲技术 为用户提供方便 统一的界面 所谓方便 是指用户能独立于具体设备的复杂物理特性之外而方便地使用设备 所谓统一 是指对不同的设备尽量使用统一的操作方式 例如各种字符设备用一种I O操作方式 这就要求用户操作的是简便的逻辑设备 而具体的I O物理设备由操作系统去实现 这种性能常常被称为设备的独立性 8 1 3设备管理的目标和功能 1 2 设备管理功能设备分配 指设备管理程序按照一定的算法把某一个I O设备 及其相应的设备控制器和通道分配给某一用户 进程 对于未分配到的进程 则插入等待队列中 缓冲区管理 为了解决CPU与I O之间速度不匹配的矛盾 在它们之间配置了缓冲区 这样设备管理程序又要负责管理缓冲区的建立 分配和释放 实现物理I O设备的操作 对于具有通道的系统 设备管理程序根据用户提出的I O请求 生成相应的通道程序并提交给通道 然后用专门的通道指令启动通道 对指定的设备进行I O操作 并能响应通道的中断请求 对于未设置通道的系统 设备管理程序直接驱动设备进行I O操作 8 1 3设备管理的目标和功能 2 虚拟设备 通过SPOOLing技术将独占设备改造成多个逻辑设备 可以实现对独占设备的共享 8 2设备控制器 为了便于设计和计算机实现 通常将输入 输出设备分为机械部分和电子部分 机械部分为通常意义上的输入 输出设备本身的硬件组成和结构 如打印机 扫描仪等 电子部分为设备控制器 也称为适配器 输入 输出设备通过设备控制器进入计算机系统 操作系统通过设备控制器管理设备 8 2 1设备控制器及其主要功能 接收和识别处理器命令 设备控制器具有命令寄存器和译码器 将处理器的命令接收到命令寄存器中并对命令进行译码 设备控制 根据接收和译码后的处理器命令对设备采取相应的控制 数据交换 实现处理器与设备控制器之间 设备控制器与设备之间的数据交换 识别设备地址 系统中的每一个设备都有一个地址 设备控制器能够识别所控制设备的地址 了解和报告设备的状态 设备控制器中的控制 状态寄存器能够存储接收到的设备状态信息 并将信息上传给处理器 8 2 2设备控制器的组成 图8 5设备控制器组成 设备控制器实现了处理器与设备之间的数据 控制和地址信息等信息的传输 设备控制器的组成如图8 5所示 设备控制器由控制 状态寄存器 数据寄存器 与处理机接口 与设备接口等构成 8 2 2设备控制器的组成 1 一个设备控制器接口连接一台设备 一台设备控制器有多个接口 可以连接多个设备 在设备控制器与设备的接口中存在数据 控制和状态三种类型的信号 设备控制器与设备之间的接口通常是低级的字符接口 设备控制器将字符数据封装成数据块 以更大的数据格式传送到计算机的内存 在编址方式上存在有内存映像编址和输入 输出独立编址两种形式 控制器端口和内存进行统一地编址 主机把输入 输出端口看作一个存储单元 对输入 输出设备的读写操作等同于对存储器的操作 优点是不需要专门的输入 输出指令 缺点是对输入 输出端口操作的指令需要占用内存空间 控制器端口独立分配地址空间 与内存的地址空间没有关系 主机使用专门的输入 输出指令对端口进行操作 独立编址的优点是外部设备不占用内存的地址空间 缺点是对输入 输出端口操作的指令类型少 操作不灵活 Intel8086 8088 分配给输入 输出端口的地址空间为64K 即 0000H 0FFFFH 只能用IN和OUT指令对其进行读写操作 8 3I O控制方式 随着计算机技术的发展 I O的控制方式也在不断地发展 一般可分为 程序I O方式 中断方式 DMA方式和通道方式 I O的控制方式发展的目标是尽量减少主机对I O控制的干预 8 3 1程序轮询方式在早期的计算机系统中 由于没有中断机构 处理机对I O设备直接进行控制 采取程序轮询I O ProgrammedI O 方式或称为忙 等待方式 即在CPU向设备控制器发出一条I O指令启动I O设备进行数据传输时 要同时把状态寄存器中的忙 闲标志busy置为1 然后便不断地循环测试busy 当busy l时 表示该I O设备尚未输入完一个字 符 CPU应继续对该标志进行测试 直至busy 0 表示该I O设备已将输入数据送入到I O控制器的数据寄存器中 于是CPU将从数据寄存器中取出数据 送入内存的指定单元 接着 再启动去读下一个数据 并置busy l 8 3 1程序轮询方式 1 8 3 1程序轮询方式 2 在程序I O方式中 由于CPU的速度远远高于I O设备 导致CPU的绝大部分时间都处于等待I O设备完成而循环测试之中 造成了CPU的极大浪费 但是它管理简单 在要求不高的场合可以被采用 8 3 2中断控制 Interrupt drivenI O 方式在现代计算机系统中 对I O设备的控制 广泛地采用中断驱动方式 即当某进程要启动某个I O设备时 便由CPU向相应的设备控制器发出一条I O命令 然后立即返回继续执行原来的任务 设备控制器便按照该命令的要求去控制I O设备 此时 CPU与I O设备处于并行工作状态 例如 在输入时 当设备控制器收到CPU发来的读命令后 便准备接收从相应输入设备送来的数据 一旦数据进入数据寄存器 控制器便通过控制线向CPU发送一中断信号 由CPU检查输入过程中是否出错 若无错 便向控制器发取走数据的信号 然后便通过控制器将数据写入指定内存单元 8 3 2中断控制 Interrupt drivenI O 方式 1 8 3 2中断控制 Interrupt drivenI O 方式 2 图8 6个人计算机的部分设备控制器信息 8 3 2中断控制 Interrupt drivenI O 方式 3 所以 中断驱动方式在I O设备输入数据的过程中 无需CPU干预 可以使CPU与I O设备并行工作 仅当输完一个数据时 才需CPU花费极短的时间去进行中断处理 从而大大地提高了整个系统的资源利用率及吞吐量 特别是CPU的利用率 8 3 3DMA DirectMemoryAccess 控制方式中断驱动I O方式虽然大大提高了主机的利用率 但是它以字 节 为单位进行数据传送 每完成一个字 节 的传送 控制器便要向CPU请求一次中断 做保存现场信息 恢复现场等工作 仍然占用了CPU的许多时间 这种方式对于高速的块设备的I O控制显然是不适合 为了进一步减少CPU对I O的干预 引入了直接存储器访问 DirectMemoryAccess 控制方式 该方式的特点是 1 它作为高速的外围设备与内存之间成批的数据交换 但是不对数据再做加工处理 数据传输的基本单位是数据块 I O操作的类型比较简单 8 3 3DMA控制方式 1 2 它需要使用一个专门的DMA控制器 DMAC DMAC中有控制 状态寄存器 传送字节计数器 内存地址寄存器和数据缓冲寄存器 3 它采用盗窃总线控制权的方法 由DMAC送出内存地址和发出内存读 设备写或设备读 内存写的控制信号来完成内存与设备之间的直接数据传送 而不用CPU的干预 有的DMA传送甚至不经过DMAC的数据缓冲寄存器的再吞吐 传输速率非常高 4 仅在传送一个或多个数据块的开始和结束时 才需CPU干预 整块数据的传送是在控制器的控制下完成的 可见 DMA方式较之中断驱动方式 又是成百倍地减少了CPU对I O控制的干预 进一步提高了CPU与I O设备的并行操作程度 8 3 3DMA控制方式 2 图8 7DMA方式 8 3 3DMA控制方式 3 图8 8DMA控制器组成 DMA控制器由内存地址寄存器 MAR 数据寄存器 DR 命令 状态寄存器 CR 数据计数器 DC 以及中断和控制逻辑等构成 如图8 8所示 8 3 4I O通道控制方式 1 I O通道控制方式的引入虽然DMA方式比中断驱动方式已显著地减少了CPU的干预 即由以字 节 为单位的干预减少到以数据块为单位的干预 但是CPU每发出一条I O指令 也只能去读 或写 一个连续的数据块 而当我们需要一次去读多个离散的数据块且将它们分别传送到不同的内存区域 或者相反时 则需由CPU分别发出多条I O指令及进行多次中断处理 才能完成 由于DMA每次只能执行一条I O指令 不能满足复杂的I O操作要求 在大 中型计算机系统中 普遍采用由专用的I O处理机来接受CPU的委托 独立执行自己的通道程序来实现I O设备与内存之间的信息交换 这就是通道技术 通道技术可以进一步减少CPU的干预 即把对一个数据块为单位的读 或写 的干预 减少到对一组数据块为单位的读 或写 的有关的控制和管理的干预 这样可实现CPU 通道和I O设备三者之间的并行工作 从而更有效地提高了整个系统的资源利用率和运行速度 8 3 4I O通道控制方式 1 2 通道程序通道是通过执行通道程序 并与设备控制器来共同实现对I O设备的控制 通道程序是由一系列的通道指令 或称为通道命令 所构成 通道指令与一般的机器指令不同 在每条指令中包含的信息较多 有操作码 内存地址 计数 读或写数据的字节数 通道程序结束位P和记录结束标志R 3 通道类型由于外围设备的种类较多 且其传输速率相差很大 所以通道也具有多种类型 根据信息交换方式 可以把通道分成以下三种类型 字节多路通道 ByteMultiplexorChannel 在这种通道中 通常都含有较多个 8 16 32 非分配型子通道 每一个子通道连接一台I O设备 这些子通道按时间片轮转方式共享主通道 一个子通道完成一个字节的传送后 立即让出字节多路通道 主通道 给另一个子通道使用 它适用于连接低速或中速设备 如打印机 终端等 8 3 4I O通道控制方式 2 图8 9字节多路通道 8 3 4I O通道控制方式 3 数组选择通道 BlockSelectorChannel 这种通道虽然可以连接多台I O设备 但是它只有一个分配型子通道 在一段时间内只能执行一道通道程序 控制一台设备进行数据传送 其数据传送是按数组方式进行 即当某台设备一旦占用了该通道 就被它独占 直至该设备传送完毕释放该通道为止 可见 它适于连接高速设备 如磁盘机 磁带机 但是这种通道的利用率较低 图8 10数组选择通道 8 3 4I O通道控制方式 4 数组多路通道 BlockMultiplexorChannel 数组选择通道虽然有很高的传输速率 但它每次只允许一个设备传输数据 数组多路通道是将数组选择通道的传输速率高和字节多路通道的分时并行操作的优点结合起来 形成的一种新的通道 它含有多个非分配型子通道 可以连接多台高 中速的外围设备 其数据传送却是按数组方式进行 所以这种通道既具有很高的数据传输速率 又能获得令人满意的通道利用率 图8 11数组多路通道 8 3 4I O通道控制方式 5 3 通道的工作过程通道中的运算控制部件有 用于记录通道程序在内存地址的通道地址字CAW 用于保存正在执行的通道指令的通道命令字CCW 用于存放通道执行后返回结果的通道状态字CSW 用于存放传输数据的通道数据字CDW 通道有专门的通道指令 这些指令可以完成空操作 读操作 写操作 控制 转移操作 用这些指令可以编写通道程序 并在通道中执行程序 命令格式一般包括操作码 数据传输内存地址 特征位 计数器 通道输入 输出的工作过程如下 1 当处理器执行用户程序中遇到输入 输出请求时 根据请求生成通道程序放入内存 也可事先编好放入内存 并将该通道程序的首地址放入通道的CAW中 2 处理器执行 启动输入 输出 指令 并启动通道工作 当通道接收到 启动输入 输出 指令后 从通道的CAW中取出通道程序的首地址 根据首地址取出第一条指令放入通道的CCW中 并向处理器发应答信号 此时处理器可继续执行其他程序 而通道则开始执行通道程序 8 3 4I O通道控制方式 6 3 通道程序完成输入 输出 启动输入 输出设备 执行完成 4 如果还有下一条指令 则继续执行 否则输入 输出完成 5 当通道传输完最后一条指令时 向处理器发输入 输出中断 通道停止工作 6 处理器接收中断信号 从通道的CSW中取得有关信息 决定下一步做什么 4 具有通道的计算机系统在计算机系统中 一个处理器可以连接若干个通道 一个通道可以连接若干个设备控制器 一个设备控制器可以连接若干个设备 处理器通过执行输入 输出指令实现对通道的控制 通道通过执行通道指令实现对设备控制器的控制 设备控制器发出读写和管理操作实施对设备的控制和完成输入 输出 8 3 4I O通道控制方式 7 在一般的主机系统中 单通道输入 输出的可靠性不高 为了增加系统的可靠性 可采用多通道 并在通道和设备控制器之间采用交叉连接 如图8 12所示 图8 12交叉连接的系统 8 3 4I O通道控制方式 8 IBM390计算机系统的输入 输出系统采用的是通道子系统 如图8 13所示 通道路径可以分为并行通道路径和串行通道路径 右边部分为串行通道路径 左边部分则为并发通道路径 分别连接不同速度的输入 输出设备 图8 13IBM390系统 8 4缓冲 Buffering 技术 目前为了解决CPU与I O设备间速度不匹配的矛盾 提高的I O速度和设备利用率 在所有的I O设备与处理机 内存 之间 都使用了缓冲区来交换数据 所以OS必须组织和管理好这些缓冲区 8 4 1缓冲的引入1 改善CPU与I O设备间速度不匹配的矛盾例如一个程序 它时而进行长时间的计算而没有输出 时而又阵发性把输出送到打印机 由于打印机的速度跟不上CPU 而使得CPU长时间的等待 如果设置了缓冲区 程序输出的数据先送到缓冲区暂存 然后由打印机慢慢地输出 这时 CPU不必等待 可以继续执行程序 实现了CPU与I O设备之间的并行工作 事实上 凡在数据的到达速率与其离去速率不同的地方 都可设置缓冲 以缓和它们之间速度不匹配的矛盾 众所周知 通常的程序都是时而计算 时而输出的 8 4 1缓冲的引入 1 2 可以减少对CPU的中断频率 放宽对中断响应时间的限制如果I O操作每传送一个字节就要产生一次中断 那么设置了n个字节的缓冲区后 则可以等到缓冲区满才产生中断 这样中断次数就减少到1 n 而且中断响应的时间也可以相应的放宽 3 提高CPU和I O设备之间的并行性缓冲的引入可显著提高CPU和设备的并行操作程度 提高系统的吞吐量和设备的利用率 8 4 2单缓冲 SingleBuffer 每当一个用户进程发出一个I O请求时 OS便在主存中为之分配一个缓冲区 例如 CPU要从磁盘上读一块数据进行计算 先从磁盘把一块数据读入到缓冲区中 然后由OS将缓冲区的数据传送到用户区 最后由CPU对这一块数据进行计算 可见第一步和最后一步是可以并行执行的 这样就提高了CPU和外设的利用率 但是对缓冲区中数据的输入和提取是串行工作的 如下图所示 操作系统用户进程输入传送I O设备 8 4 2单缓冲 SingleBuffer 1 平均每批数据的处理 输入 传输 计算 时间 max 输入时间 计算时间 传输时间 8 4 3双缓冲 DoubleBuffer 双缓冲工作方式基本方法是在设备输入时 先将数据输入到缓冲区A 装满后便转向缓冲区B 此时OS可以从缓冲区A中提取数据传送到用户区 最后由CPU对数据进行计算 如下图所示 操作系统用户进程C输入T传送MI O设备 平均每批数据的处理 输入 传输 计算 时间 max 输入时间 计算时间 传输时间 A输入 传输 计算 B输入 8 4 4多缓冲 CircularBuffer 双缓冲可以实现对缓冲区中数据的输入和提取 与CPU的计算 三者并行工作 所以双缓冲进一步加快了I O的速度 提高了设备的利用率 当对缓冲区中数据的输入和提取的速度基本相匹配时 采用双缓冲可使两者并行工作 获得较好的效果 但是如果两者的速度相差甚远时 双缓冲的效果就不够理想了 如果增加缓冲区的个数 情况就会有所改善 8 4 4多缓冲 CircularBuffer 1 我们可以将多个缓冲区组织成循环队列的形式 如下图所示 例如对于用作输入的循环缓冲区 通常提供给输入进程和计算进程使用 输入进程不断向空缓冲区中输入数据 计算进程则从满缓冲区中提取数据用于计算 操作系统用户进程输入传送I O设备 8 4 4多缓冲 CircularBuffer 2 循环缓冲的组织 1空 2空 3空 4满 5满 6满 空缓冲队列头指针E 有数据缓冲队列头指针F 8 4 4多缓冲 CircularBuffer 3 进程同步 1 无空缓冲 E 1 F 输入进程阻塞 计算进程在消耗一个缓冲后唤醒它 2 无数据 E F 计算进程阻塞 输入进程在装满一个缓冲后唤醒它 缓冲使用设置两个过程 1 GetDatabuf 取有数据的缓冲 在取之前要检查有无数据 见进程同步 F F 1 modN 2 GetEmptybuf 取空缓冲 在取之前要检查有无空缓冲 见进程同步 E E 1 modN 8 4 5缓冲池 当系统配置较多的设备时 使用专用缓冲区就要消耗大量的内存空间 且其利用率不高 为了提高缓冲区的利用率 目前广泛使用公用缓冲池 池中的缓冲区可供多个进程共享 对于同时用于输入 输出的公用缓冲池 至少含有三种类型的缓冲区 空缓冲区 装满输入数据的缓冲区和装满输出数据的缓冲区 为了管理上的方便 可将相同类型的缓冲区链成一个队列 于是就形成三个队列 空缓冲区队列 输入缓冲区队列和输出缓冲区队列 另外还应具有四种工作缓冲区 用于收容输入数据的工作缓冲区 hin 用于提取输入数据的工作缓冲区 sin 用于收容输出数据的工作缓冲区 hout 用于提取输出数据的工作缓冲区 sout 可见 缓冲区工作在收容输入 提取输入 收容输出和提取输出四种工作方式下 如下图5所示 申请和归还缓冲区 1 getbuf type 2 putbuf type bufnum beginbeginP RS type P MS type P MS type addbuf type bufnum takebuf type V MS type V MS type V RS type endend 8 4 5缓冲池 1 其中 RS type 是为每种缓冲队列设置的同步信号量 MS type 是为每种缓冲队列设置的互斥信号量 8 5输入 输出软件 I O软件的分层 输入 输出软件是实现输入 输出管理的软件部分 输入 输出软件设计目标是改善输入 输出设备的效率 实现统一标准的输入 输出设备管理方式 目前 输入 输出软件设计最常用的方法是分层设计 分为四层 如下图所示 8 5 1中断处理程序 在设备控制器控制下 I O设备完成了I O操作后 控制器 或通道 便向CPU发出一中断请求 CPU响应后便转向中断处理程序 中断处理程序大致包含以下几步 当中断处理程序开始执行时 都必须去唤醒阻塞的驱动 程序 进程 在采用信号量机制时 可通过执行V操作 将处于阻塞状态的驱动 程序 进程唤醒 保护被中断进程的CPU现场 分析中断原因 转入相应的设备中断处理程序 进程中断处理 判别此次I O完成是正常结束中断还是异常结束中断 分别作相应处理 恢复被中断进程或由调度程序选中的进程的CPU的现场 返回被中断的进程 或进入新选中的进程继续运行 在UNIX中将以上对各类设备处理相同的部分集中起来 形成中断总控程序 每当要进行中断处理时 都要首先进入中断总控程序 再按需要转入不同的设备处理程序 8 5 2设备驱动程序 设备驱动程序通常又称为设备处理程序 它是输入 输出进程与设备控制器之间的通信程序 简称为设备驱动进程 它的主要任务是接收上层软件发来的抽象要求并将设备控制器发来的信号传送给上层软件 1 设备驱动程序的功能设备驱动程序包括所有与设备相关的代码 因此 每个设备都有自己专用的驱动程序 设备驱动程序的主要功能如下 将上层软件传送来的用户作业的逻辑输入 输出请求转换为设备的具体要求 验证用户作业输入 输出请求的合法性 了解输入 输出设备的状态 传递有关参数 设置设备的工作方式 发出输入 输出命令 启动分配的输入 输出设备工作 执行指定的输入 输出操作 8 5 2设备驱动程序 1 及时响应设备控制器或通道发来的中断请求 根据中断类型调用相应的中断处理程序进行处理 如果计算机系统设置有通道 设备驱动程序还应能够根据用户作业的输入 输出请求 自动地构成通道程序 设备出错处理2 设备驱动程序的特点 设备驱动程序是请求输入 输出的进程与设备控制器之间的一个通信程序 它将进程的输入 输出请求传送给设备控制器 把设备控制器中所记录的设备状态 输入 输出操作完成情况传送给请求输入 输出的进程 设备驱动程序与输入 输出控制方式紧密相关 常用的设备控制方式是中断和DMA方式 设备驱动程序针对一类具体的设备工作 与设备硬件紧密相关 通常情况下 设备驱动程序需要用汇编语言书写 目前有很多驱动程序的基本部分已经固化在ROM中 8 5 2设备驱动程序 2 3 设备驱动程序的处理过程将用户和上层软件对设备控制的抽象要求转换成对设备的具体要求 如对抽象要求的盘块号转换为磁盘的盘面 磁道及扇区 检查I O请求的合理性 读出和检查设备的状态 确保设备处于就绪态 传送必要的参数 如传送的字节数 数据在主存的首址等 工作方式的设置 启动I O设备 并检查启动是否成功 如成功则将控制返回给I O控制系统 在I O设备忙于传送数据时 该用户进程把自己阻塞 直至中断到来才将它唤醒 而CPU可干别的事 8 5 2设备驱动程序 3 4 设备出错处理设备出错处理由设备驱动程序完成 在设备使用上 大多数的设备出错情况 只有驱动程序知道该如何处理 一般来讲 设备驱动程序会根据使用出错的情况不同 采用不同的处理方法 如果发生的错误很小 不影响设备的正常使用 设备驱动程序会忽略错误 如果发生的错误不能忽略 则设备驱动程序会采取重试的方法或报警的方法 如何报警 如何处理错误则与操作系统无关 可能需要人工解决 例如 使用打印机时出错 打印机驱动程序通过系统通知用户重试确认 如果打印机缺纸出错 打印机驱动程序通过系统通知用户处理 处理好后可继续运行 使用磁盘时由于位示图等关键信息出错 则磁盘驱动程序通过系统打印出错误信息并终止执行 驱动程序自身不能处理 8 5 3与设备无关的操作系统软件 1 设备无关的软件定义设备驱动程序与设备之间存在着紧密关系 即设备驱动程序不能独立于设备 而最上层的用户级输入 输出软件却要求用户程序对设备的使用独立于具体使用的物理设备 实现设备独立性 因此 在设备驱动程序与用户级输入 输出软件之间需要再加上一层软件 这层软件是与设备无关的软件 也称为设备独立性软件 2 设备的逻辑名与物理名之间的映射正如用户程序中要使用逻辑地址而不使用物理地址一样 在用户程序中使用设备的逻辑名而不使用设备的物理名 设备的逻辑名是系统中预先设计的统一名称 不依赖于设备 可以是一个简单的字符串或一个整数 应用在与设备有关的所有软件模块中 设备的物理名是系统提供的标准名称 是永久的 不可改变的 设备驱动程序需要将设备的逻辑名映射为物理名 并按照设备的逻辑名进行设备的分配和回收 8 5 3与设备无关的操作系统软件 1 逻辑设备表 logicalunittable 实现了设备的逻辑名到物理名的映射 对于单用户单进程系统 整个系统设置一个逻辑设备表 由于系统中所有进程的设备分配情况都记录在同一表中 不允许具有相同的逻辑设备名 对于多用户多进程系统 系统为每个用户设置一个逻辑设备表 每当用户登录时 便为用户建立一个进程 同时也为之建立一个逻辑设备表 并将该表放入进程的进程控制块中 只需要查询进程控制块即可实现逻辑名到物理名的映射 在逻辑设备表中包含有逻辑设备名 物理设备名和设备驱动程序的入口地址等信息 当进程用逻辑设备名来请求分配输入 输出设备时 系统为它分配相应的物理设备 并在逻辑设备表上建立一个表目 写上应用程序中使用的逻辑设备名和系统分配的物理设备名 以及该设备的驱动程序入口地址 一个用户程序在使用磁盘 打印机等设备时 无需因为每一种设备类型的变化而修改程序 操作系统可以根据当时设备的配置情况自由分配适当类型的设备 一台设备不能提供使用 可以用相同种类的设备来提供 8 5 3与设备无关的操作系统软件 2 3 设备独立性软件为用户使用设备提供了统一操作 通过限制操作的权限达到保护设备的目的有了设备独立性软件 无论何种设备 都可以向用户输入 输出程序层提供统一的接口 对所有的设备 用户的操作都是相同的 都通过read实现读操作 从输入设备读取数据 通过write实现写操作 将数据输出到输出设备 系统对每个设备设置读写权限 最终实现保护设备的目的 4 实现设备独立性软件的优点实现设备独立性软件具有如下优点 使得设备分配时具有灵活性 提高了设备的利用率 易于实现输入 输出重定向 提高系统的可适用性用于输入 输出操作的设备可以更换 即重定向 而不必改变应用程序 8 5 4用户级输入 输出软件 大多数的输入 输出软件都在操作系统核心中实现 只有与用户程序链接在一起的库函数以及运行在操作系统核心之外的其它程序才在用户层实现 1 库文件对输入 输出系统进行调用的系统函数属于用户级 如对设备的read write操作 2 spooling程序技术 1 spooling程序技术定义脱机输入 输出是通过外围控制机实现信息的输入 输出 输入 输出不需要主机的参与 使得主机的处理与输入 输出过程并行进行 提高了系统的效率 特别是处理器的效率 8 5 4用户级输入 输出软件 1 随着计算机处理速度的提高 特别是多道程序的引入 外围控制机的输入 输出控制功能可以用程序来模拟 用程序来替代外围控制机 模拟输入程序将大量需要处理的信息预先输入到磁盘中暂存 实现了 预输入 当用户作业需要输入信息时则直接从磁盘中输入 同样 当用户作业需要输出信息时 会暂时将信息保存到磁盘中 待作业完成后 模拟输出程序再将磁盘中的输出信息输出到输出设备 实现了 缓输出 这样的输入 输出是在主机的控制下 实现的脱机输入 输出 称为spooling simultaneausperiphernaloperationson line 也称为假脱机 8 5 4用户级输入 输出软件 2 2 spooling系统的组成 8 5 4用户级输入 输出软件 3 spooling系统主要包括如下四个部分 输入井和输出井 输入缓冲区和输出缓冲区 预输入进程SPI和缓输出进程SPO 井管理程序在作业执行过程中 进程如果请求启动某台输入 输出设备操作 操作系统得到该请求并调出井管理程序 控制从相应的输入井读取数据或将信息输出到输出井 输入井中的信息被作业取走后 输入井应该归还 同样 如果输出井中的信息被送入到输出缓冲区后 输出井也应该归还 操作系统通过预输入表和缓输出表管理输入作业和输出作业 表中有作业名 作业状态 文件名 设备类 数据起始位置 数据当前位置等信息 当输入井或输出井删除时 作业信息也从表中删除 井管理程序的主要工作就是管理预输入表和缓输出表及回收输入井和输出井 8 5 4用户级输入 输出软件 4 3 应用spooling技术实现共享打印机打印机属于独享设备 但利用spooling技术 可将它改造为一台可供多个用户共享的设备 从而提高设备的利用率 方便用户的使用 当用户进程申请打印输出时 spooling系统同意为进程打印输出 但并不真正分配打印机给该进程 而只为该进程做了两件事 输出进程在输出井中为之申请一空闲盘块区 并将要打印的数据送入其中 输出进程再为用户进程请求一张空白的缓输出表 并将用户的打印要求填入表中 如果还有作业打印输出 系统仍可以接收请求并将其写入表中 打印机可能使用时间非常长 在用户使用期间 其他用户无法打印 为解决该问题 大多数操作系统都为打印机创建了一个特殊的守护进程 由守护进程从输出井中取出用户作业进行打印 而不需要用户进程参与打印 这样 用户进程在将打印数据送入输出井之后不需要等待打印 继续运行 8 5 4用户级输入 输出软件 续 4 spooling技术的特点 提高了输入 输出速度如同脱机输入输出一样 spooling提高了输入 输出速度 缓和了处理器与低速输入 输出设备之间速度不匹配的矛盾 将独占设备改造为共享设备通过输入井和输出井实现了独占设备向共享设备的转变 实现了虚拟设备功能实现了将独占设备变换为若干个对应的逻辑设备 8 6设备的分配和回收 在多道程序环境下 设备必须由系统分配 每当进程向系统提出I O请求时 设备分配程序按照一定的策略 把其所需的设备及其有关资源 如缓冲区 控制器和通道 分配给该进程 在分配设备时还必须考虑系统的安全性 避免发生死锁现象 8 6 1设备分配原则1 根据设备的固有属性而采取的策略独享方式 独享方式是指将一个设备分配给某进程后 便一直由它独占 直至该进程完成或释放该设备为止 系统才能将该设备分配给其它进程使用 这种分配方式是对独占设备采用的分配策略 它不仅往往造成设备利用率低 而且还会引起系统死锁 8 6 1设备分配原则 1 共享方式共享方式是指将共享设备 磁盘 同时分配给多个进程使用 但是这些进程对设备的访问需进行合理的调度 虚拟方式虚拟方式是指通过高速的共享设备 把一台慢速的以独占方式工作的物理设备改造成若干台虚拟的同类逻辑设备 这就需要引入SPOOLing技术 虚拟设备属于逻辑设备 2 设备分配算法 与进程的调度算法相似 先来先服务 当多个进程同时向某一设备提出I O请求时 该算法就根据对该设备提出请求的先后次序将这些进程排列成一个设备请求队列 设备分配程序把设备首先分配给队首进程 优先级高者优先 对优先权高的进程所提出的I O请求赋予高优先权 在形成设备队列时 将优先级高的进程排在设备队列前面 先得到分配 而对于优先权相同的I O请求 则按先来先服务原则排队分配 8 6 1设备分配原则 2 3 设备分配中的安全性安全分配方式每当进程发出一个I O请求后 便进入阻塞状态 直到其I O操作完成时才被唤醒 当它运行时不保持任何设备资源 打破了产生死锁一个必要条件 请求和保持 所以这种分配方式是安全的 但是这种分配算法使得CPU与I O设备串行工作 设备的利用率比较低 不安全分配方式进程发出一个I O请求后仍可以继续运行 需要时还可以发第二个I O请求 第三个I O请求 只有当进程所请求的设备已被另一个进程占用时 进程才进入阻塞状态 这种分配方式是不安全 因为它可能具备 请求和保持 条件 从而可能造成系统死锁 8 6 2设备数据结构 设备分配程序是负责向对系统提出I O请求的进程分配设备 及其相应的控制器和通道 数据结构有 系统设备表 SDT 设备控制表 DCT 控制器控制表 COCT 通道控制表 CHCT 每个表的具体内容如下图所示 在整个系统中 有一张系统设备表 SDT 用于记录系统中全部设备的信息 每个设备占一个表目 其中包括设备类型 设备标识符 设备控制表指针及设备驱动程序的入口地址等表项 系统为每一个设备都配置了一张设备控制表 DCT 用于记录该设备的情况 表中除了有用于指示设备类型的字段和设备标识符字段外 还应有下列字段 8 6 2设备数据结构 1 设备队列的队首指针 凡因请求本设备而未得到满足的进程 其PCB都应按照一定的策略排成一个队列 称为设备请求队列或简称为设备队列 其队首指针指向队首PCB 在有的系统中还设置了队尾指针 设备状态 当设备自身处于 忙 状态时 将设备的忙标志置 l 若与该设备相连接的控制器或通道处于 忙 状态 而不能启动该设备 则将设备的等待标志置 l COCT表指针 该指针指向与该设备相连接的控制器的控制表 在具有多条通路的情况下 一个设备可与多个控制器相连接 此时 在DCT中应设置多个控制器表指针 重复执行次数 外部设备在传送数据时 若发生信息传送错误 系统并不立即认为传送失败 而是允许它重新传送 只要在规定的重复次数或时间内恢复正常传送 则仍认为传送成功 否则才认为传送失败 8 6 2设备数据结构 2 SDT集合SDTDCT集合DCTCOCT集合COCTCHCT集合CHCT 8 6 3设备分配和回收过程 1 设备分配的流程对于具有单通道的系统 则当进程提出I O请求后 系统进行设备分配的流程图如下图 2 设备分配程序的改进为了获得设备的独立性 进程应用逻辑设备名请求I O 这样 系统首先从SDT中找出第一个该类设备的DCT 如忙 则查找第二个该类设备的DCT 当所有该类设备都忙时 才把进程挂在该类设备的等待队列中 实际上 系统为了提高可靠性和灵活性 通常采用多通路的I O系统结构 此时对多个控制器和通道的分配 必须查找所有的控制器和通道 才能决定是否将该进程挂起 单通道系统的设备分配流程若忙不忙不安全安全不忙忙忙不忙 进程P提出所需的I O设备 根据物理设备名 从SDT中找出该设备的DCT 由DCT的设备状态字段 检查该设备是否忙 将该进程的PCB插入到该设备的等待队列中 检查本次设备分配是否安全性 将此设备分配给该进程 从其DCT中找出与该设备连接的控制器的COCT 检查该控制器是否忙 将该进程的PCB插入到该控制器的的等待队列中 将该控制器分配给进程 从COCT中找到与该控制器连接的通道的CHCT 检查该通道是否忙 将该进程的PCB插入到该通道的的等待队列中 将该通道分配给进程 至此 设备 控制器和通道三者都已分配成功 启动I O设备 进行具体的I O操作 练习8 8 1设备管理的主要目标是什么 设备管理的基本功能包括哪些 8 2叙述设备控制器的结构及其工作原理 8 3叙述输入 输出控制方式有几种 各有何特点 8 4输入 输出软件包括哪几层 各有何功能 8 5通道的功能是什么 8 6叙述循环缓冲的工作原理 8 7叙述spooling技术的实现思想 8 8叙述设备分配的步骤 8 9什么是设备的独立性 为什么要引入设备的独立性 8 10叙述设备分配中可能出现死锁的情况
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!