《操作系统》第5篇 设备管理1.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
向 I/O 控制器 发布读块命令 CPU-DMA CPU 做其它事 读 D MA 控制 器的状态 中断 DMA-CPU 下条指令 ( c ) DMA 方式 5.2.3 直接存储器访问DMA I/O控制方式 1. DMA(Direct Memory Access)控制方式的引入 5.2 I/O控制方式 5.2.3 直接存储器访问DMA I/O控制方式 1. DMA(Direct Memory Access)控制方式的引入 与中断方式的区别 中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理;DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数。 中断方式的数据传送是由CPU控制完成的; 而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的。 5.2 I/O控制方式 2. DMA控制器的组成 DMA控制器的组成 5.2.3 直接存储器访问DMA I/O控制方式 5.2 I/O控制方式 2. DMA控制器的组成 为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器: 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。 5.2.3 直接存储器访问DMA I/O控制方式 5.2 I/O控制方式 2. DMA控制器的组成 四类寄存器: 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。 数据计数器DC。存放本次CPU要读或写的字(节)数。 5.2.3 直接存储器访问DMA I/O控制方式 5.2 I/O控制方式 3. DMA工作过程 5.2.3 直接存储器访问DMA I/O控制方式 DMA方式的工作流程 设置 MAR 和 DC 初值 启动 DMA 传送命令 挪用存储器周期传送 数据字 存储器地址增 1 字计数寄存器减 1 DC=0? 请求中断 在继续执行用户 程序的同时,准 备又一次传送 否 是 5.2.4 I/O通道控制方式 1. I/O通道控制方式的引入 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。 5.2 I/O控制方式 2. 通道程序 操作码。 (2)内存地址。 (3)计数。 (4)通道程序结束位P。 (5)记录结束标志R。 5.2.4 I/O通道控制方式 5.2 I/O控制方式 720 250 1 1 WRITE 1850 250 0 0 WRITE 2000 300 1 0 WRITE 5830 60 1 0 WRITE 1034 140 0 0 WRITE 813 80 0 0 WRITE 内存地址 计数 R P 操作 2. 通道程序 5.2.4 I/O通道控制方式 5.2 I/O控制方式 5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓和CPU与I/O设备间速度不匹配的矛盾。 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 提高CPU和I/O设备之间的并行性。 利用缓冲寄存器实现缓冲 5.3 缓 冲 管 理 5.3.1 缓冲的引入 缓冲区的设置 硬缓冲:在设备中设置缓冲区,由硬件实现。 软缓冲:在内存中开辟一个空间用作缓冲区。 5.3.2 单缓冲和双缓冲 1. 单缓冲(Single Buffer) 单缓冲工作示意图 2. 双缓冲(Double Buffer) 双缓冲工作示意图 5.3.2 单缓冲和双缓冲 双机通信时缓冲区的设置 5.3.2 单缓冲和双缓冲 5.3 缓 冲 管 理 5.3.3 循环缓冲 1. 循环缓冲的组成 5.3 缓 冲 管 理 多个缓冲区 装输入数据的空缓冲区R; 已装满数据的缓冲区G; 计算进程正在使用的现行工作缓冲区C。 5.3.3 循环缓冲 1. 循环缓冲的组成 5.3 缓 冲 管 理 多个指针 指示计算进程下一个可用缓冲区G的指针Nestg; 指示输入进程下次可用的空缓冲区R的指针Nexti; 指示计算进程正在使用的缓冲区C的指针Current。 5.3.3 循环缓冲 1. 循环缓冲的组成 循环缓冲 5.3 缓 冲 管 理 2. 循环缓冲区的使用 Getbuf过程。 5.3.

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档