- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
的操作system教学课件DeviceManagementcase
操作系统课程讲义 操作系统课程讲义 主讲教师:史广顺 gsshi@gsshi@ * Minix中的I/O设备管理 设备驱动方式(与Unix的本质区别,与Linux类似方式) 每一类设备均有单独的设备驱动程序,其中硬件无关的内容形成公共程序、硬件相关的内容作为特定驱动。以模块化组织提高系统灵活性 采用进程间通信的方式完成I/O设备的使用(Minix的进程式组织结构) Unix采用过程调用的方式,用户进程调用驱动程序,引发操作系统陷入,完成I/O操作后由中断处理程序唤醒用户进程 设备管理方法 设备驱动程序作为独立进程存在,OS启动时各个设备驱动进程完成基本初始化,而后等待消息(阻塞),直到用户进程发送消息(使用I/O设备)将其唤醒 与硬件相关的设备驱动部分作为过程被设备驱动程序调用,从而实现无关性封装 I/O软件与死锁处理 Minix将所有与设备无关的I/O软件封装在文件系统模块中,所有的块设备均作为一种特殊的文件 用户空间的I/O软件主要是供用户程序调用的函数库 Minix中对死锁的处理采用“鸵鸟算法” I/O管理实例 * 进程式OS与整体式OS I/O管理实例 * Windows中的I/O设备管理 I/O管理系统结构 I/O管理系统是一个独立的系统组件,存在于NTOSKRNL.exe文件中 I/O管理系统由多个执行体组件和设备驱动程序组成,负责接受I/O请求,并针对性的将设备请求传送到各类对应的设备 Windows中将所有的I/O操作均看作对虚拟文件的操作,所有的I/O数据传输都被看作“流数据”,由I/O管理系统负责将虚拟文件映射到对应的物理设备上 I/O管理系统组成 I/O管理器:负责定义支撑设备驱动程序的基本架构,直接响应I/O请求 设备驱动程序:负责定义并实现某一特定类型设备的I/O接口管理 PnP管理器:与I/O管理器和总线驱动程序协同,检测硬件资源的分配、设备的变更 电源管理器:与I/O管理器协同工作来检测整个系统和单个设备,完成电源状态转换 WDM WMI:WDM的WMI支持例程,负责实现设备与WMI服务之间的通信 注册表:作为一个数据库,存储基本硬件描述信息以及驱动程序的初始化和配置信息 硬件抽象层:将设备驱动程序实现为二进制可移植的形式,实现对硬件平台的独立 Windows中的I/O系统数据结构 文件对象、驱动程序对象、设备对象、I/O请求包 I/O管理实例 * Windows中I/O系统组件 I/O管理实例 * Windows中的I/O数据结构 文件对象 所有I/O设备被看作文件对象,用户程序进行I/O操作时就像是对一个文件进行操作 文件对象是可共享的、有设备无关命名的、受保护的、支持同步的结构 调用与实现过程:C库函数——Win32 DLL——NTDLL.DLL——NTOSKRNL.DLL 驱动程序对象与设备对象 驱动程序对象代表一个独立的驱动程序,I/O管理器从驱动程序对象中获得并且为I/O记录每个驱动程序的入口点 设备对象在OS中代表一个物理/逻辑/虚拟的设备,并描述设备的基本特征 当驱动程序被加载时,I/O管理器将创建一个驱动程序对象,然后调用驱动程序的初始化例程,初始化例程将创建一个设备对象。设备对象接受I/O操作请求,驱动程序对象实现I/O操作请求 I/O请求包 由固定部分(标题)和堆栈单元(数量不定)组成,包含了I/O请求的各类信息 IRP由I/O管理器构造,保存了I/O请求的相关信息,同时保存了调用者的相关信息 所有的IRP均保存在IRP队列中,当用户程序终止后,I/O系统将清除未完成的IRP I/O管理实例 * I/O请求涉及到的数据结构 I/O管理实例 * Windows中设备驱动程序层次 I/O管理实例 * 设备驱动程序的内容组成 I/O管理实例 * Windows中的I/O处理简述 设备驱动程序的同步操作 驱动程序在访问相关数据时,必须实现“同步”操作,即以互斥的形式保护各类共享数据。在单CPU的机器上,通过同步例程实现;在多CPU的机器上,通过“自旋锁”实现 I/O处理的类型 同步I/O和异步I/O:绝大部分I/O操作是以同步方式实现的。但是也可以通过设定CreatFile的参数来使用异步I/O,异步I/O要求用户程序在设计和实现时必须保证不访问来自I/O操作的数据。在异步方式下,用户程序通过等待同步对象来实现与异步I/O操作的“同步” 快速I/O:允许I/O系统不产生IRP而直接使用驱动程序执行I/O请求 映射文件I/O和文件高速缓存 映射文件I/O是将磁盘中的Mapping File作为进程的虚拟内存一部分,直接把文件作为大的数组进行访问 Windows利用Mapping File可实现文件高速缓存和映象活动 分散/集中式I/O:运行用户程序从虚拟内存的多个缓冲区(映射文件)
文档评论(0)