李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 第 18 讲 设备管理(2) 李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 1/
教学目标与内容 教学目标 教学内容 理解设备驱动程序的工作过程 理解与设备无关的I/O软件 理解用户层I/O软件 设备驱动程序 计算机科学与技术系 信息与教育技术中心 2/
复习 I/O系统的功能、模型和接口 I/O设备和设备控制器 中断机构和中断处理程序 3/
设备驱动程序 设备驱动程序是I/O进程与设备控制器之间的通信程序。 驱动程序的功能 接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体的要求。 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。 发出I/O命令,如果设备空闲,便立即启动I/O设备。 4/
设备驱动程序 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。 5/
设备驱动程序 设备驱动程序的特点 驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。 驱动程序与I/O设备所采用的I/O控制方式紧密相关。 用于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。 驱动程序应允许可重入。 6/
设备驱动程序 设备处理方式 为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。 在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序,供用户进程或系统调用。 7/ 7/
设备驱动程序 设备驱动程序的处理过程 将抽象要求转换为具体要求 检查I/O设备请求的合法性 读出和检查设备的状态 传送必要的参数 工作方式的设置 启动I/O设备 8/ 8/
对I/O设备控制方式 使用轮询的程序I/O方式 在程序I/O方式中,由于CPU的高速性和I/O设备的低速性, 致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构, 使I/O设备无法向CPU报告它已完成了一个字符的输入操作。 9/ 9/
图 6-13 程序I/O和中断驱动方式的流程 10/
I/O控制方式 中断驱动I/O控制方式 在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。 11/ 11/
例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0. 1 ms。 若采用程序I/O方式,CPU约有 99 例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用程序I/O方式,CPU约有 99.9 ms的时间处于忙—等待中。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。 可见,中断驱动方式可以成百倍地提高CPU的利用率。 12/ 12/
I/O控制方式 直接存储器访问(DMA) I/O控制方式 DMA(Direct Memory Access)控制方式的引入 该方式的特点是: 数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块; 所传送的数据是从设备直接送入内存的,或者相反 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。 13/ 13/
DMA控制器的组成 图 6-14 DMA控制器的组成 14/ 14/
I/O控制方式 为了实现在主机与控制器之间成块数据的直接交换, 必须在DMA控制器中设置如下四类寄存器: 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。 数据计数器DC。 存放本次CPU要读或写的字(节)数。 15/ 15/
I/O控制方式 DMA工作过程 图 6-15 DMA方式的工作流程 设置 MAR 和 DC 初值 启动 DMA 传送命令 挪用存储器周期传 送数据字 存储器地址增 1 字计数寄存器减 = ? 请求中断 在继续执行用户 程序的同时 , 准 备又一次传送 否 是 DMA工作过程 图 6-15 DMA方式的工作流程 16/ 16/
I/O通道控制方式 I/O通道控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。 17/ 17/
通道程序 通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制。 通道程序是一系列通道指令所构成的。 通道指令包含下列信息: 操作码。 内存地址。 计数。 通道程序结束位P。 记录结束标志R。 18/ 18/
操作 P R 计数 内存地址 WRITE 80 813 140 1034 1 60 5830 300 2000 250 1650 2720 19/ 19/
与设备无关的I/O 软件 设备独立性 的概念 为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。 其基本含义是: 应用程序独立于具体使用的物理设备。 20/
与设备无关软件的基本概念 以物理设备名使用设备 引入逻辑设备名 逻辑设备名称到物理设备名称的转换 21/
与设备无关的软件 设备驱动程序的统一接口 缓冲管理 差错控制(暂时性错误和持久性错误) 对独立设备的分配与回收 独立于设备的逻辑数据块 22/ 22/
设 备 分 配 设备分配中的数据结构 设备控制表DCT 图 6-17 设备控制表 23/
设 备 分 配 控制器控制表、 通道控制表和系统设备表 图 6-18 COCT、 CHCT和SDT表 24/
设 备 分 配 设备分配时应考虑的因素 设备的固有属性 独享设备 共享设备 虚拟设备 设备分配算法 先来先服务 优先级高者优先 25/
设 备 分 配 设备分配中的安全性 安全分配方式 不安全分配方式 26/ 26/
设 备 分 配 独占设备的分配程序 基本的设备分配程序 设备分配程序的改进 分配设备 分配控制器 分配通道 增加设备的独立性 考虑多通路情况 设 备 分 配 独占设备的分配程序 基本的设备分配程序 分配设备 分配控制器 分配通道 设备分配程序的改进 增加设备的独立性 考虑多通路情况 27/ 27/
作业 220 11,12,13,16,17 28/
实验 简单字符设备驱动程序的设计 29/