- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows操作系统之设备管理
Windows-设备管理 用户态程序只能调用Windows子系统提供的API来同设备交互,当请求传递到I/O管理器时,它进行必要的参数匹配和操作安全性检查,然后由这个请求构造出合适的I/O请求包(IRP),并把此IRP传递到适当的驱动程序去,并给应用程序一个消息,通知这次I/O操作还没完成。 驱动程序一般是通过硬件抽象层来和硬件交互,从而完 成I/O请求工作。 驱动程序完成I/O操作后,它将调用一个特殊的内核服务 例程来完成IRP。这时,I/O管理器把数据和结果返回给 Windows和用户应用程序。 DMA控制方式 I/O通道控制方式 简介:I/O通道方式是DMA方式的发展,可进一步减少 CPU的干预,把对一个数据块的读(或写)为单位的干 预减少为对一组数据块的读(或写)及有关的控制和管 理为单位的干预。通道时负责外围设备与主存之间进行 数据交换、能单独完成输入输出操作的处理机。它控制 设备与内存直接进行数据交换,它有自己的通道指令, 这些通道指令的运行由CPU启动,并在操作结束时向CPU 发出中断信号。 通道程序由一系列通道指令所构成,通道指令的每条指 令中包含如下信息:①操作码;②内存地址;③计数; ④通道程序结束位P;⑤记录结束标志R。 工作流程:CPU向I/O通道发送一条I/O指令,以给出 其所要执行的通道程序的首址和要访问的I/O设备, 通道程序接到该指令后,通过执行通道程序便可完成 CPU指定的I/O任务。 I/O通道控制方式的优点:实现CPU、通道和I/O设备 三者的并行操作,执行一个通道程序可以完成几批 I/O操作,更有效地提高整个系统的资源利用率。 缓冲管理 缓冲技术:1.发送请求发出一段时间后才执行输出传送 ; 2.输入请求发出之前就执行输入传送。 缓冲的引入的作用: 1.缓和CPU与I/O设备间速度不匹配的矛盾。 2.减少对CPU的中断频率, 放宽对CPU中断响应时间的 限制 3.提高CPU和I/O设备之间的并行性。 单缓冲(Single Buffer) 公用缓冲池(Buffer Pool) 缓冲池的组成:对于既可用于输入又可用于输出的公用缓冲池, 其中至少应含有以下三种类型的缓冲区: ① 空(闲)缓冲区; ② 装满输入数据的缓冲区; ③ 装满输出数据的缓冲区。 为了管理上的方便,可将相同类型的缓冲区链成一个 队列,于是可形成以下三个队列: (1)空缓冲队列emq。 (2)输入队列inq。 (3)输出队列outq。 Getbuf过程和Putbuf过程 Procedure Getbuf(type) begin Wait(RS(type)); Wait(MS(type)); B(number)∶=Takebuf(type); Signal(MS(type)); end Procedure Putbuf(type, number) begin Wait(MS(type)); Addbuf(type, number); Signal(MS(type)); Signal(RS(type)); end 缓冲区的工作方式 I/O软件的设计目标 I/O软件的总目标: 高效率:确保I/O设备与CPU的并发性。 通用性:提供简单抽象清晰和统一的接口。 I/O软件的具体目标: 与具体设备无关 统一命名:不同的OS命名规则不一样。 错误处理:越底层处理越好 缓冲技术 设备的分配和释放 I/O控制方式 I/O软件的层次结构 中断处理程序 中断程序的功能: 进程上下文的切换、中断源的测试、读取设备状态和 修改进程状态。 中断程序的过程: 唤醒被阻塞的驱动程序 保护中断进程的CPU环境 转入响应的设备处理程序 中断处理 恢复被中断的进程现场 设备驱动程序 设备驱动程序的功能 : (1) 接收由I/O进程发来的命令和参数, 并将命令中的抽 象要求转换为具体要求 (2) 检查用户I/O请求的合法性,了解I/O设备的状态,传 递有关参 数,设置设备的工作方式。 (3) 发出I/O命令,如果设备空闲,便立即启动I/O设备去 完成指定 的I/O操作;如果设备处于忙碌
文档评论(0)