编辑: GXB156399820 | 2014-01-03 |
19 6.3.2 I/O中断方式 ? I/O控制器能发中断 ? 工作过程 优点:外设进行数据处理 时,CPU不必等待,提 高了CPU的使用效率和 系统处理能力 缺点:CPU每次处理的数 据量少,适于数据传输 率较低的设备 OSLec21
20 中断的概念 ? 什么是中断? ? CPU对系统中或系统外发生异步事件的响应 ? 异步事件是无一定时序关系的随机发生事件 ? 为什么叫中断? ? 异步事件发生会打断了对当前程序的执行而转去处理该 异步事件 ? 处理完成后,再转回原程序中断点继续执行 ? 基本概念: ? 中断源:引起中断发生的事件 ? 中断向量:用来表明是什么中断的数字 ? 中断寄存器:记录中断 ? 中断字:中断寄存器的内容 OSLec21
21 6.3.3 DMA方式 ? 对于中断,当CPU和I/O间传送大量数据时, 处理效率仍不高 ? DMA (Direct Memory Access)技术: ? 直接存储器访问 ? 系统总线上引入独立控制单元―DMA控制器 ? DMA控制器可控制数据在内存和I/O间传送 ? 此时可提高处理I/O的效能(尤其是大块数据) OSLec21
22 DMA控制器结构与控制过程 OSLec21
23 工作过程 ?
1、当进程要求输入时,把要求传送的内存始址(M) 和要传的字节数送入DMA的内存地址寄存器和传送字 数寄存器 ?
2、把启动位置1.设备开始工作.进程(A)挂起. 调度另一进程(B) ?
3、一批数据输入完成后,DMA中断B,转向中断处理 程序. ?
4、中断处理程序唤醒A,返回B的断点继续执行. ?
5、以后OS调度A运行时,A从M处取数据处理. OSLec21
24 OSLec21
25 DMA方式与中断的主要区别 ? 中断时机 ? 中断方式是在数据缓冲寄存器满后,发中断请 求,CPU进行中断处理 ? DMA方式则是在所要求传送的数据块全部传送结 束时要求CPU进行中断处理 ? 数据传输 ? 中断方式的数据传送由CPU控制完成 ? DMA方式是在DMA控制器的控制下不经过CPU控 制完成的 OSLec21
26 6.3.4 通道方式 ? 通道:在CPU的控制下独立地执行通道程序,对外部 设备的I/O操作进行控制,以实现内存与外设之间成批 的数据交换. ? 通道引入:由通道控制器(Channel Processor)处理I/O ? 有自己的专用存储器 ? 可执行由通道指令组成的通道程序 ? 可进行较为复杂的I/O控制 ? 提高了CPU与设备、设备与设备间的并行度 ? 通道程序是由通道指令组成,一个通道可以分时的方 式执行几道程序.每道程序控制一台外部设备,因此 每道通道程序称为子通道. OSLec21
27 通道的种类 ? 字节多路通道 ? 数据选择通道 ? 数据多路通道 ? 在一大型系统中可以同时存在这三种类型的通 道以便控制各种不同类型的设备. OSLec21
28 OSLec21
29 选择通道 OSLec21
30 I/O系统结构 OSLec22
1 操作系统 第二十二讲 王宇英 [email protected] OSLec22
2 概述 I/O控制方式 Review I/O系统硬件特点 OSLec22
3 I/O软件的组成 缓冲技术 其他技术 本次内容 OSLec22
4 ? I/O软件设计的目标 ? 设备无关性 ? 错误处理 ? 同步/异步传输 ? 能处理独占设备和共享设备的I/O操作 6.4 I/O系统的软件组成 OSLec22
5 I/O系统软件层次 OSLec22
6 中断处理程序 ? ① 检查CPU响应中断的条件是否满足 ? ② CPU响应中断后立即关中断 ? ③ 保存被中断进程的CPU环境 ? ④ 转入相应的设备中断处理程序 ? ⑤ 执行中断处理程序 ? ⑥ 恢复被中断进程的CPU现场 ? ⑦ 开中断,CPU继续执行 OSLec22
7 设备驱动程序 ? 设备驱动(Device Driver): 直接和设备交互的 内核代码 ? Top half:系统调用的处理代码 ? 实现了设备独立性 ? 主要是解释open(),close(),read(),write(),ioctl() ? 用来启动设备I/O,可能会将线程置于睡眠状态 ? Bottom half:中断处理 OSLec22