操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理

上传人:suns****4568 文档编号:91124638 上传时间:2019-06-26 格式:PPT 页数:72 大小:472KB
返回 下载 相关 举报
操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理_第1页
第1页 / 共72页
操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理_第2页
第2页 / 共72页
操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理_第3页
第3页 / 共72页
操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理_第4页
第4页 / 共72页
操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理》由会员分享,可在线阅读,更多相关《操作系统ch5.8实例研究windows2000 xpio系统和5.9linux设备管理(72页珍藏版)》请在金锄头文库上搜索。

1、5.8实例研究 :Windows 2000/XP的I/O系统,5.8.1 Windows 2000/XP I/O系统结构和组件 5.8.2 Windows 2000/XP I/O系统的数据结构 5.8.3 Windows2000/XP设备驱动程序 5.8.4 Windows 2000/XP I/O处理 5.8.5 Windows 2000XP高速缓存管理,5.8.1Windows 2000/XP I/O系统结构和组件,Windows I/O系统是执行体的组件,存在于 NTOSKRNLEXE文件中。 它接受来自用户态和核心态的I/O请求,并以不同形式把它们传送到I/O设备。,I/O系统的设计目标

2、(1),高效快速进行I/O处理; 使用标准安全机制保护共享资源; 满足Win32、OS/2和POSIX子系统指定的I/O服务的需要; 允许用高级语言编写驱动程序;能在系统中动态地添加或删除相应的设备驱动程序;,I/O系统的设计目标(2),支持多种文件系统包括FAT、CD-ROM文件系统(CDFS)、UDF文件系统和NTFS文件系统; 允许整个系统或者单个硬件设备进入和离开低功耗状态,可以节约能源。,I/O系统的结构和组件(1),I/O系统的结构和组件(2),IO管理器把应用程序和系统组件连接到各种逻辑和物理的设备上,定义了支持设备驱动程序的基本构架。 负责驱动I/O请求的处理,为设备驱动程序提

3、供核心服务。把用户态的读写转化为I/O请求包IRP。,I/O系统的结构和组件(3),设备驱动程序为某种类型设备提供一个I/O接口。设备驱动程序从I/O管理器接受处理命令,当处理完毕后通知I/O管理器。设备驱动程序之间的协同工作也通过I/O管理器进行。,I/O系统的结构和组件(4),即插即用管理器PnP通过与I/O管理器和总线驱动程序的协同工作来检测硬件资源的分配,添加和删除。 电源管理器通过与I/O管理器的协同工作来检测系统和单个硬件设备,完成不同电源状态的转换。 WMI支持例程,允许驱动程序使用这些支持例程作为媒介,与用户态运行的WMI服务通信。,I/O系统的结构和组件(5),即插即用WDM

4、接口完成驱动程序对核心态功能的支持转换。 I/O系统为驱动程序提供了分层结构,包括WDM驱动程序、驱动程序层和设备对象。WDM驱动程序可以分为三类:总线驱动程序、驱动程序和过滤器驱动程序。,I/O系统的结构和组件(6),注册表 存储基本硬件设备的描述信息以及驱动程序的初始化和配置信息数据库。 HAL把设备驱动程序与多种硬件平台隔离开来,使它们在给定的体系结构中是二进制可移植的,在Windows 2000/XP支持的硬件体系结构中是源代码可移植的。,一个典型的I/O请求流程(1),一个典型的I/O请求流程(2), I/O子系统API是内部的执行体系统服务,子系统DLL调用它们来实现子系统I/O函

5、数。 I/O管理器负责驱动I/O请求的处理。 核心态设备驱动程序把I/O请求转化为对硬件设备的特定控制请求。 驱动程序支持例程被设备驱动程序调用来完成它们的I/O请求。,1、I/O管理器,I/O请求包IRP(I/O Request Packet) I/O管理器创建代表每个I/O操作的IRP,传递IRP给正确的驱动程序,且当此I/O操作完成后,处理这个数据包。 I/O管理器为不同驱动程序提供公共代码,驱动程序调用这些代码来执行它们的I/O处理。 I/O管理器提供I/O服务,允许环境子系统执行各自的IO函数。,2、PnP管理器 (1) PnP技术特点,支持I/O设备及部件的自动配置; 减少了由制造

6、商造成的限制,使I/O附加卡和部件不再具有人工跳线设置; 可在主机板和附加卡上保存系统资源配置参数和分配状态,有利于对整个I/O资源的分配和控制; 支持和兼容各种操作系统平台,具有很强的扩展性和可移植性;一定程度上具有“热插入”、“热拼接”功能。,PnP管理器 (2) PnP技术需要的支持,具有PnP功能的操作系统、配置管理软件、软件安装程序和设备驱动程序等; 需要系统平台的支持(如PnP主机板、控制芯片组和支持 PnP的BIOS等)以及各种支持PnP规范的总线、I/O控制卡和部件。,PnP管理器 (3) PnP管理器提供以下能力, 自动识别已经安装的硬件设备。 通过资源仲裁(resource

7、 arbitrating)进程收集硬件资源需求(中断,I/O地址等)来实现硬件资源的优化分配; 可在启动后根据系统中硬件配置的变化对硬件资源重新进行分配。 通过硬件标识选择应该加载的设备驱动程序。 为检测硬件配置变化提供应用程序和驱动程序的接口。,3、电源管理器(1) 电源管理需要底层硬件支持,底层硬件要符合ACPI(Advanced Configuration and PowerInterface)标准。 支持电源管理的计算机系统的BIOS(BasiclnputandOutputSystem)必须符合ACPI标准。,电源管理器(2),ACPI为系统和设备定义了不同的六种能耗状态, S0(正常

8、工作)、 S1到S3(睡眠)、 S4(休眠)、 S5(完全关闭)。,电源管理器(3) 电源状态指标, 电源消耗:计算机系统消耗的能源。 软件运行恢复:计算机系统回复到正常工作状态时软件能否恢复运行。 硬件延迟:计算机系统回复到正常工作状态的时间延迟。,5.8.2Windows 2000/XP I/O系统的数据结构,四种数据结构代表了I/O请求: 文件对象、 驱动程序对象、 设备对象、 IO请求包(IRP)。,1、文件对象(1),文件作为对象来管理,它们是两个或两上以上用户态进程的线程可以共享的系统资源,可以有名称,被基于对象的安全性所保护,并且它们支持同步。,文件对象(2) 文件对象的属性,文

9、件名 字节偏移量 共享模式 打开模式 指向设备对象的指针 指向卷参数块的指针 指向区域对象指针的指针 指向专用高速缓存映射的指针,文件对象(3) 文件对象的使用,当调用者打开文件或单一设备时,I/O管理器为文件对象返回句柄。 文件对象由包含访问控制表(ACL)的安全描述体保护。 I/0管理器查看安全子系统来决定文件的ACL是否允许进程去访问它的线程正在请求的文件。,2、驱动程序对象和设备对象(1),线程为文件对象打开句柄时,I/O管理器根据文件对象名称来决定将调用哪个或哪些驱动程序来处理请求。下面的系统对象满足这些要求: 驱动程序对象,I/O管理器从驱动程序对象中获得并且为I/O记录每个驱动程

10、序的调度例程的地址。 设备对象在系统中代表一个物理的、逻辑的设备并描述它的特征,例如,所需要的缓冲区的对齐方式和用来保存I/O请求包的设备队列位置。,驱动程序对象和设备对象(2),3、I/O请求包 (1),IRP是I/O系统用来存储处理IO请求所需信息的数据结构。 线程调用I/O服务时,I/O管理器就构造一个IRP来表示在整个系统I/O进展中要进行的操作。 I/O管理器在IRP中保存一个指向调用者文件对象的指针。,I/O请求包 (2) IRP由两部分组成,固定部分(标题)和一个或多个堆栈单元。 固定部分包括:请求的类型和大小、同步请求还是异步请求、用于缓冲I/O的指向缓冲区的指针和随着请求的进

11、展而变化的状态信息。 IRP堆栈单元包括一个功能码、功能特定的参数和指向调用者文件对象的指针。,5.8.3Windows2000/XP 设备驱动程序(1),Windows 2000/XP支持多种类型的设备驱动程序和编程环境,在同一种驱动程序中也存在不同的编程环境,具体取决于硬件设备。,设备驱动程序(2) 核心模式的驱动程序,文件系统驱动程序: PnP管理器和电源管理器设备驱动程序: Windows NT设备驱动程序: Win32子系统显示驱动程序和打印驱动程序: 符合Windows驱动程序模型的WDM驱动程序:,设备驱动程序(3) 用户模式驱动程序,虚拟设备驱动程序(VDD) Win32子系统

12、驱动程序 类驱动程序 端口驱动程序 小端口驱动程序,设备驱动程序(4) 一个例子:文件系统驱动和磁盘驱动,1、驱动程序结构(1),设备驱动程序包括一组调用处理I/O请求不同阶段的五个设备驱动程序: 初始化例程 添加设备例程 启动I/O例程 中断服务例程 中断服务DPC例程,驱动程序结构(2) 主要的设备驱动例程,2、同步(1),驱动程序必须同步执行对全局驱动程序数据的访问,主要原因: 驱动程序的执行可被高优先级线程抢先,或时间片到时被中断,或被其他中断所中断。 在多处理器系统中,Windows 2000/XP能同时在多CPU上运行驱动程序代码。,同步(2), 设备驱动程序访问其ISR也要访问的

13、数据时,内核提供设备驱动程序必须调用的特殊同步例程。当共享数据被访问时,内核同步例程将禁止ISR的执行。 单CPU系统中,这些例程将IRQL提高到一个指定的级别。 多CPU系统中,一种称为“自旋锁”的机制用来锁定来自指定CPU的独占访问的结构。,5.8.4Windows 2000/XP I/O处理,一个I/O请求会经过若干个处理阶段,且根据请求是指向由单层驱动程序操作的设备还是一个经过多层驱动程序才能到达的设备,它经过的阶段不同。 处理的不同进一步依赖于调用者是指定了同步I/O还是异步I/0。,1、I/O的类型,(1)同步I/O和异步I/O (2)快速I/O (3)映射文件I/O和文件高速缓存

14、 (4)分散/集中I/O,2、对单层驱动程序的I/O请求,核心态设备驱动程序同步I/O请求处理包括六步: I/O请求经过子系统DLL。 子系统DLL调用I/0管理器的NtWriteFile服务。 I/O管理器以IRP形式给设备驱动程序发请求。 驱动程序启动I/O操作。 在设备完成了操作并且中断CPU时,设备驱动程序服务于中断。 I/O管理器完成I/O请求。,中断处理和I/0完成(1),I/O设备中断发生时,将控制转交给内核陷阱处理程序,内核将在它的中断向量表中搜索定位用于设备的ISR。 ISR被首次调用时,只在设备IRQL上停留获得设备状态所必需的一段时间,最后停止设备的中断。它使一个DPC排

15、入队列,并退出服务例程,清除中断。,中断处理和I/0完成(2),在DPC例程被调用时,设备完成对中断的处理。之后,将调用I/O管理器来完成I/O并处理IRP。也可以启动下一个正在设备队列中等待的I/O请求。,中断处理和I/0完成(3),I/O处理的第三阶段称作“I/O完成”,它因I/0操作的不同而不同。例如,全部的I/O服务都把操作的结果记录在由调用者提供的数据结构“I/O状态块”(I/O status block)中。一些执行缓冲I/O的服务要求I/O系统返回数据给调用线程。,5.8.5Windows 2000XP 高速缓存管理 1高速缓存管理器主要特征,(1)单一集中式系统高速缓存 (2)

16、与内存管理器结合 (3)高速缓存的一致性 (4)虚拟块缓存 (5)基于流的缓存 (6)可恢复文件系统支持,2、高速缓存的结构(1),Windows 2000XP系统高速缓存管理器基于虚拟空间缓存数据,它管理一块系统虚拟地址空间区域,而不是一块物理内存区域。 高速缓存管理器把每个地址空间区域分成256KB的槽(slot),被称为视图(view)。,高速缓存的结构(2),3、高速缓存的大小,1)缓存区的虚拟大小 系统高速缓存虚拟大小是已安装物理内存量的函数,默认为64MB。如果系统物理内存多于(16MB),缓存大小设定为以128MB为基础,物理内存每比16MB多4MB,则增加64MB缓存区。利用这种算法,有64MB物理内存的计算机系统虚拟缓存将是:128MB+(64MB-16MB)4MB*64MB=896MB。,2)缓存的物理大小,系统高速缓存没有自己的工作集,而是与高速缓存数据、页缓冲池、可分页的核心代码以及可分页的驱动程序代码共用一个系统工作集。系统高速缓存只是这个工作集的一个组成部分。,4、高速缓存的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号