1、操作系统课程讲义操作系统课程讲义操作系统原理操作系统原理I/O设备管理案例分析设备管理案例分析主讲教师:史广顺主讲教师:史广顺 操作系统课程讲义操作系统课程讲义2Minix中的中的I/O设备管理设备管理v设备驱动方式(与设备驱动方式(与Unix的本质区别,与的本质区别,与Linux类似方式)类似方式)每一类设备均有单独的设备驱动程序,其中硬件无关的内容形成公共程序、硬件相关每一类设备均有单独的设备驱动程序,其中硬件无关的内容形成公共程序、硬件相关的内容作为特定驱动。以模块化组织提高系统灵活性的内容作为特定驱动。以模块化组织提高系统灵活性采用进程间通信的方式完成采用进程间通信的方式完成I/O设备
2、的使用(设备的使用(Minix的进程式组织结构)的进程式组织结构)Unix采用过程调用的方式,用户进程调用驱动程序,引发操作系统陷入,完成采用过程调用的方式,用户进程调用驱动程序,引发操作系统陷入,完成I/O操操作后由中断处理程序唤醒用户进程作后由中断处理程序唤醒用户进程v设备管理方法设备管理方法设备驱动程序作为独立进程存在,设备驱动程序作为独立进程存在,OS启动时各个设备驱动进程完成基本初始化,而后启动时各个设备驱动进程完成基本初始化,而后等待消息(阻塞),直到用户进程发送消息(使用等待消息(阻塞),直到用户进程发送消息(使用I/O设备)将其唤醒设备)将其唤醒与硬件相关的设备驱动部分作为过程
3、被设备驱动程序调用,从而实现无关性封装与硬件相关的设备驱动部分作为过程被设备驱动程序调用,从而实现无关性封装vI/O软件与死锁处理软件与死锁处理Minix将所有与设备无关的将所有与设备无关的I/O软件封装在文件系统模块中,所有的块设备均作为一种软件封装在文件系统模块中,所有的块设备均作为一种特殊的文件特殊的文件用户空间的用户空间的I/O软件主要是供用户程序调用的函数库软件主要是供用户程序调用的函数库Minix中对死锁的处理采用中对死锁的处理采用“鸵鸟算法鸵鸟算法”I/O管理实例管理实例操作系统课程讲义操作系统课程讲义3进程式进程式OS与整体式与整体式OSI/O管理实例管理实例操作系统课程讲义操
4、作系统课程讲义4Windows中的中的I/O设备管理设备管理vI/O管理系统结构管理系统结构I/O管理系统是一个独立的系统组件,存在于管理系统是一个独立的系统组件,存在于NTOSKRNL.exe文件中文件中I/O管理系统由多个执行体组件和设备驱动程序组成,负责接受管理系统由多个执行体组件和设备驱动程序组成,负责接受I/O请求,并针对性的请求,并针对性的将设备请求传送到各类对应的设备将设备请求传送到各类对应的设备Windows中将所有的中将所有的I/O操作均看作对虚拟文件的操作,所有的操作均看作对虚拟文件的操作,所有的I/O数据传输都被看数据传输都被看作作“流数据流数据”,由,由I/O管理系统负
5、责将虚拟文件映射到对应的物理设备上管理系统负责将虚拟文件映射到对应的物理设备上vI/O管理系统组成管理系统组成I/O管理器:负责定义支撑设备驱动程序的基本架构,直接响应管理器:负责定义支撑设备驱动程序的基本架构,直接响应I/O请求请求设备驱动程序:负责定义并实现某一特定类型设备的设备驱动程序:负责定义并实现某一特定类型设备的I/O接口管理接口管理PnP管理器:与管理器:与I/O管理器和总线驱动程序协同,检测硬件资源的分配、设备的变更管理器和总线驱动程序协同,检测硬件资源的分配、设备的变更电源管理器:与电源管理器:与I/O管理器协同工作来检测整个系统和单个设备,完成电源状态转换管理器协同工作来检
6、测整个系统和单个设备,完成电源状态转换WDM WMI:WDM的的WMI支持例程,负责实现设备与支持例程,负责实现设备与WMI服务之间的通信服务之间的通信注册表:作为一个数据库,存储基本硬件描述信息以及驱动程序的初始化和配置信息注册表:作为一个数据库,存储基本硬件描述信息以及驱动程序的初始化和配置信息硬件抽象层:将设备驱动程序实现为二进制可移植的形式,实现对硬件平台的独立硬件抽象层:将设备驱动程序实现为二进制可移植的形式,实现对硬件平台的独立vWindows中的中的I/O系统数据结构系统数据结构文件对象、驱动程序对象、设备对象、文件对象、驱动程序对象、设备对象、I/O请求包请求包I/O管理实例管
7、理实例操作系统课程讲义操作系统课程讲义5Windows中中I/O系统组件系统组件I/O管理实例管理实例操作系统课程讲义操作系统课程讲义6Windows中的中的I/O数据结构数据结构v文件对象文件对象所有所有I/O设备被看作文件对象,用户程序进行设备被看作文件对象,用户程序进行I/O操作时就像是对一个文件进行操作操作时就像是对一个文件进行操作文件对象是可共享的、有设备无关命名的、受保护的、支持同步的结构文件对象是可共享的、有设备无关命名的、受保护的、支持同步的结构调用与实现过程:调用与实现过程:C库函数库函数Win32 DLLNTDLL.DLLNTOSKRNL.DLLv驱动程序对象与设备对象驱动
8、程序对象与设备对象驱动程序对象代表一个独立的驱动程序,驱动程序对象代表一个独立的驱动程序,I/O管理器从驱动程序对象中获得并且为管理器从驱动程序对象中获得并且为I/O记录每个驱动程序的入口点记录每个驱动程序的入口点设备对象在设备对象在OS中代表一个物理中代表一个物理/逻辑逻辑/虚拟的设备,并描述设备的基本特征虚拟的设备,并描述设备的基本特征当驱动程序被加载时,当驱动程序被加载时,I/O管理器将创建一个驱动程序对象,然后调用驱动程序的初始管理器将创建一个驱动程序对象,然后调用驱动程序的初始化例程,初始化例程将创建一个设备对象。设备对象接受化例程,初始化例程将创建一个设备对象。设备对象接受I/O操
9、作请求,驱动程序对象操作请求,驱动程序对象实现实现I/O操作请求操作请求vI/O请求包请求包由固定部分(标题)和堆栈单元(数量不定)组成,包含了由固定部分(标题)和堆栈单元(数量不定)组成,包含了I/O请求的各类信息请求的各类信息IRP由由I/O管理器构造,保存了管理器构造,保存了I/O请求的相关信息,同时保存了调用者的相关信息请求的相关信息,同时保存了调用者的相关信息所有的所有的IRP均保存在均保存在IRP队列中,当用户程序终止后,队列中,当用户程序终止后,I/O系统将清除未完成的系统将清除未完成的IRPI/O管理实例管理实例操作系统课程讲义操作系统课程讲义7I/O请求涉及到的数据结构请求涉
10、及到的数据结构I/O管理实例管理实例操作系统课程讲义操作系统课程讲义8Windows中设备驱动程序层次中设备驱动程序层次I/O管理实例管理实例操作系统课程讲义操作系统课程讲义9设备驱动程序的内容组成设备驱动程序的内容组成I/O管理实例管理实例操作系统课程讲义操作系统课程讲义10Windows中的中的I/O处理简述处理简述v设备驱动程序的同步操作设备驱动程序的同步操作驱动程序在访问相关数据时,必须实现驱动程序在访问相关数据时,必须实现“同步同步”操作,即以互斥的形式保护操作,即以互斥的形式保护各类共享数据。在单各类共享数据。在单CPU的机器上,通过同步例程实现;在多的机器上,通过同步例程实现;在
11、多CPU的机器上,的机器上,通过通过“自旋锁自旋锁”实现实现vI/O处理的类型处理的类型同步同步I/O和异步和异步I/O:绝大部分:绝大部分I/O操作是以同步方式实现的。但是也可以通操作是以同步方式实现的。但是也可以通过设定过设定CreatFile的参数来使用异步的参数来使用异步I/O,异步,异步I/O要求用户程序在设计和实要求用户程序在设计和实现时必须保证不访问来自现时必须保证不访问来自I/O操作的数据。在异步方式下,用户程序通过等操作的数据。在异步方式下,用户程序通过等待同步对象来实现与异步待同步对象来实现与异步I/O操作的操作的“同步同步”快速快速I/O:允许:允许I/O系统不产生系统不
12、产生IRP而直接使用驱动程序执行而直接使用驱动程序执行I/O请求请求映射文件映射文件I/O和文件高速缓存和文件高速缓存映射文件映射文件I/O是将磁盘中的是将磁盘中的Mapping File作为进程的虚拟内存一部分,直接把文作为进程的虚拟内存一部分,直接把文件作为大的数组进行访问件作为大的数组进行访问Windows利用利用Mapping File可实现文件高速缓存和映象活动可实现文件高速缓存和映象活动分散分散/集中式集中式I/O:运行用户程序从虚拟内存的多个缓冲区(映射文件)中读:运行用户程序从虚拟内存的多个缓冲区(映射文件)中读写数据到磁盘文件(非高速缓存打开)的一个连续区域中。写数据到磁盘文
13、件(非高速缓存打开)的一个连续区域中。I/O管理实例管理实例操作系统课程讲义操作系统课程讲义11盘设备的管理描述盘设备的管理描述v盘的硬件组成及相关原理盘的硬件组成及相关原理磁盘:软盘和硬盘,基于电磁原理存储数据,盘面附着可磁化金属氧化物,磁头旋转磁盘:软盘和硬盘,基于电磁原理存储数据,盘面附着可磁化金属氧化物,磁头旋转保持角速度一致即可保持角速度一致即可只读光盘:只读光盘:CD-ROM,基于光学原理,利用凹痕与槽脊的过渡来记录,基于光学原理,利用凹痕与槽脊的过渡来记录0、1;光头旋转;光头旋转时需要保持线速度一致时需要保持线速度一致可刻录光盘:可刻录光盘:CD-R,盘面附着染料,通过调整激光
14、的功率溶化染料,形成光学上的暗,盘面附着染料,通过调整激光的功率溶化染料,形成光学上的暗斑,记录斑,记录0、1可擦写光盘:可擦写光盘:CD-RW,盘面附着银,盘面附着银/铟铟/锑锑/碲合金碲合金DVD光盘:更小的凹痕、更密的螺旋、更短的激光波长光盘:更小的凹痕、更密的螺旋、更短的激光波长v盘的盘的I/O管理问题管理问题物理空间的分布:磁道物理空间的分布:磁道/柱面柱面/扇区,螺旋扇区,螺旋/扇区扇区物理空间的逻辑化映射:控制器实现统一的虚拟几何规格物理空间的逻辑化映射:控制器实现统一的虚拟几何规格数据存储和读写的性能保证:数据存储和读写的性能保证:RAID、低级、低级/高级格式化、柱面斜进、交
15、叉编码高级格式化、柱面斜进、交叉编码磁盘驱动的核心算法:磁盘臂调度算法磁盘驱动的核心算法:磁盘臂调度算法容错机制:坏扇区记录、容错机制:坏扇区记录、ECC校验、稳定存储器校验、稳定存储器I/O管理实例管理实例操作系统课程讲义操作系统课程讲义12电源的管理描述电源的管理描述v计算机硬件设备的电能消耗计算机硬件设备的电能消耗电源管理的目的:合理、有效的使用电能驱动计算机硬件设备工作电源管理的目的:合理、有效的使用电能驱动计算机硬件设备工作如何减少能量消耗:当设备不工作时,由如何减少能量消耗:当设备不工作时,由OS将其关闭;或者通过降低将其关闭;或者通过降低应用程序的速度来降低能源消耗应用程序的速度
16、来降低能源消耗电池类型:一次性使用、可充电、智能电池电池类型:一次性使用、可充电、智能电池v电源管理的方法电源管理的方法硬件设备设计为多种状态,例如工作、睡眠、休眠、关闭等,可通过硬件设备设计为多种状态,例如工作、睡眠、休眠、关闭等,可通过机械按钮或者设备本身转换状态以节省能源机械按钮或者设备本身转换状态以节省能源操作系统根据能量消耗的规律负责调整设备的状态操作系统根据能量消耗的规律负责调整设备的状态硬件设备和电池均提供硬件设备和电池均提供“智能化智能化”设计,通过向设计,通过向OS提供当前状态信息提供当前状态信息供供OS进行决策,合理规划电能消耗进行决策,合理规划电能消耗“退化退化”操作:当
17、能源不足时,操作:当能源不足时,OS通过降低电压、降低分辨率等操作通过降低电压、降低分辨率等操作以延长计算机可用时间以延长计算机可用时间I/O管理实例管理实例操作系统课程讲义操作系统课程讲义13电源的管理描述电源的管理描述v计算机硬件设备的电能消耗计算机硬件设备的电能消耗电源管理的目的:合理、有效的使用电能驱动计算机硬件设备工作电源管理的目的:合理、有效的使用电能驱动计算机硬件设备工作如何减少能量消耗:当设备不工作时,由如何减少能量消耗:当设备不工作时,由OS将其关闭;或者通过降低应用程将其关闭;或者通过降低应用程序的速度来降低能源消耗序的速度来降低能源消耗电池类型:一次性使用、可充电、智能电
18、池电池类型:一次性使用、可充电、智能电池ACPI(高级配置与电源接口)标准:为系统定义了(高级配置与电源接口)标准:为系统定义了6种不同的能耗状态(种不同的能耗状态(S0S5),为设备定义了,为设备定义了4种不同的能耗状态(种不同的能耗状态(D0D3)v电源管理的方法电源管理的方法硬件设备设计为多种状态,例如工作、睡眠、休眠、关闭等,可通过机械按硬件设备设计为多种状态,例如工作、睡眠、休眠、关闭等,可通过机械按钮或者设备本身转换状态以节省能源钮或者设备本身转换状态以节省能源操作系统根据能量消耗的规律负责调整设备的状态操作系统根据能量消耗的规律负责调整设备的状态硬件设备和电池均提供硬件设备和电池
19、均提供“智能化智能化”设计,通过向设计,通过向OS提供当前状态信息供提供当前状态信息供OS进行决策,合理规划电能消耗进行决策,合理规划电能消耗“退化退化”操作:当能源不足时,操作:当能源不足时,OS通过降低电压、降低分辨率等操作以延长通过降低电压、降低分辨率等操作以延长计算机可用时间计算机可用时间I/O管理实例管理实例操作系统课程讲义操作系统课程讲义14ACPI标准中的能耗状态分布标准中的能耗状态分布I/O管理实例管理实例系统能耗状态系统能耗状态能耗描述能耗描述软件恢复软件恢复硬件延迟硬件延迟设备能耗状态设备能耗状态S0(正常工作)(正常工作)最大最大无无无无D0(正常工作)(正常工作)S1(
20、睡眠)(睡眠)比比S0大,比大,比S2小小恢复运行恢复运行小于小于2秒秒D2S2(睡眠)(睡眠)比比S1大,比大,比S3小小恢复运行恢复运行2秒或更秒或更多多D2S3(睡眠)(睡眠)比比S2大,比大,比S4小小恢复运行恢复运行2秒或更秒或更多多D2S4(休眠)(休眠)电源按钮保持微弱电流,电源按钮保持微弱电流,系统保持唤醒电流系统保持唤醒电流恢复运行恢复运行长长D3(关闭)(关闭)S5(完全关闭)(完全关闭)电源按钮一直保持微弱电源按钮一直保持微弱电流电流系统引导系统引导长长D3(关闭)(关闭)操作系统课程讲义操作系统课程讲义15Windows中的中的PNP与电源管理与电源管理I/O管理实例管理实例操作系统课程讲义操作系统课程讲义16Thanks for your time!Questions&Answers全文结束全文结束