Windows XP中断处理.ppt

上传人:s****8 文档编号:68958812 上传时间:2022-12-30 格式:PPT 页数:23 大小:1.08MB
返回 下载 相关 举报
Windows XP中断处理.ppt_第1页
第1页 / 共23页
Windows XP中断处理.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《Windows XP中断处理.ppt》由会员分享,可在线阅读,更多相关《Windows XP中断处理.ppt(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实例研究:实例研究:Windows 2000/XPWindows 2000/XP中断处理中断处理 1 1、Windows 2000/XPWindows 2000/XP中断处理概述中断处理概述(1)(1)中断中断主要主要由由I/OI/O设备、处理器时钟或定时设备、处理器时钟或定时器、可以启用或禁用。中断是异步事件,器、可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内可能随时发生,与处理器正在执行的内容无关。容无关。异常异常是同步事件,它是某一个特定指令是同步事件,它是某一个特定指令执行的结果。异常的例子是内存访问错执行的结果。异常的例子是内存访问错误、调试指令及被零除。内核也将

2、系统误、调试指令及被零除。内核也将系统服务调用视作异常。服务调用视作异常。Windows 2000/XPWindows 2000/XP中断处理中断处理概述概述(2)(2)硬件和软件都可以产生中断和硬件和软件都可以产生中断和异常,如总线出错异常由硬异常,如总线出错异常由硬件造成,而被零除异常是由件造成,而被零除异常是由软件引起的;同样软件引起的;同样,I/OI/O设备设备可产生中断,而内核自身也可产生中断,而内核自身也可以发出中断。可以发出中断。Windows 2000/XPWindows 2000/XP中断处理中断处理概述概述(3)(3)陷阱陷阱指处理意外事件的一种指处理意外事件的一种硬件机制

3、,当中断或异常发硬件机制,当中断或异常发生时,它能发现并俘获正在生时,它能发现并俘获正在执行的线程,把它从用户态执行的线程,把它从用户态切换到核心态,并将控制权切换到核心态,并将控制权交给内核的陷阱处理程序。交给内核的陷阱处理程序。Windows 2000/XPWindows 2000/XP中断处理中断处理概述概述(4)(4)WindowsWindows陷阱调度陷阱调度 中断服务例程中断服务例程中断服务例程中断服务例程中断服务例程中断服务例程异常调度器异常调度器虚存管理器的虚存管理器的页面管理器页面管理器中断调度器中断调度器系统服务调度器系统服务调度器异常调度器异常调度器陷阱处理程序陷阱处理程

4、序异常帧异常帧虚拟地虚拟地址异常址异常硬件异常硬件异常软件异常软件异常系统服系统服务调用务调用中断中断2 2、Windows 2000/XPWindows 2000/XP中断类型和优先级(1)(1)中中 断断 请请 求求 级级 IRQLIRQL(Interrupt Interrupt Request LevelRequest Level)内核维护内核维护的的IRQLIRQL是可以移植的是可以移植的 IRQLIRQL将将按按照照优优先先级级排排列列中中断断,并并按按照照优优先先级级顺顺序序服服务务中中断断,较较高高优优先先级级中中断断可可以以抢抢占占较较低低优优先先级级中中断断服务服务 Wind

5、ows 2000/XPWindows 2000/XP中断类型和优先级(2)(2)WindowsWindows中断请求中断请求级级 系统关闭系统关闭高高3131掉电掉电3030处理器内的中断处理器内的中断2929时钟时钟2828配置文件配置文件设备设备n n设备设备1 1Dispatch/DPCDispatch/DPC2 2APCAPC1 1低低0 0硬件中断硬件中断软件中断软件中断正常的线程执行正常的线程执行Windows 2000/XPWindows 2000/XP中断类型和优先级(3)(3)WindowsWindows中断屏蔽中断屏蔽 高高掉电掉电处理器内的中断处理器内的中断时钟时钟配置文

6、件配置文件设备设备n n设备设备1 1在处理器在处理器A A上上被屏蔽的中断被屏蔽的中断Dispatch/DPCDispatch/DPCAPCAPC低低IRQL=IRQL=时钟时钟处理器处理器A A在处理器在处理器B B上上被屏蔽的中断被屏蔽的中断IRQL=Dispatch/DPCIRQL=Dispatch/DPC处理器处理器B BWindows 2000/XPWindows 2000/XP硬件中断处理硬件中断处理(1)(1)中断产生时中断产生时,陷阱处理程序保存运,陷阱处理程序保存运行程序的状态,调用中断调度程序。行程序的状态,调用中断调度程序。中断调度程序中断调度程序提高处理器提高处理器的

7、的IRQLIRQL到到中断源的级别,以便在中断服务过中断源的级别,以便在中断服务过程中屏蔽等于和低于当前中断源级程中屏蔽等于和低于当前中断源级别的其他中断。别的其他中断。重新启用中断重新启用中断,以使高优先级的中,以使高优先级的中断仍然能够得到服务。断仍然能够得到服务。Windows 2000/XPWindows 2000/XP硬件中断处理硬件中断处理(2)(2)WindowsWindows使用中断分配使用中断分配表表IDTIDT(Interrupt Dispatch Interrupt Dispatch TableTable)来查找处理特定中断来查找处理特定中断的例程。的例程。中断中断源的源

8、的IRQLIRQL作为表的索引,作为表的索引,表的入口指向中断处理例程。表的入口指向中断处理例程。Windows 2000/XPWindows 2000/XP硬件中断处理硬件中断处理(3)(3)WindowsWindows中断服务中断服务 高高掉电掉电处理器间的中断处理器间的中断时钟时钟设备设备n设备设备1中断调度程序接收中断调度程序接收 到中断源的到中断源的IRQL,用作查询用作查询IDT的索引的索引Dispatch/DPCAPC低低有中断产生有中断产生线线程程调调度度程程序序/DPC处处理理程程序序(无)(无)系统关闭例程系统关闭例程系统调电例程系统调电例程处理器间中断处理程序处理器间中断

9、处理程序时钟处理程序时钟处理程序设备设备n ISR设备设备1 ISRAPC处理程序处理程序中中断断调调度度程程序序跟跟随随该该指指针,针,调用相应的处理程序调用相应的处理程序Windows 2000/XPWindows 2000/XP软件中断处理软件中断处理多数中断由硬件产生,但内核多数中断由硬件产生,但内核也为多种任务产生软件中断,也为多种任务产生软件中断,包括:启动线程调度、处理计包括:启动线程调度、处理计时器到时、在特定线程的描述时器到时、在特定线程的描述表中异步执行一个过程及支持表中异步执行一个过程及支持异步异步I/OI/O等。等。4 4、延迟过程调度和异步过程调用、延迟过程调度和异步

10、过程调用(1)(1)内核直接调用调度程序实现描述表内核直接调用调度程序实现描述表切换时,在深入多层代码内检测到切换时,在深入多层代码内检测到应该进行重调度,理想的解决方法应该进行重调度,理想的解决方法是请求调度,但应延迟调度的产生是请求调度,但应延迟调度的产生直到内核完成当前活动为止,延迟直到内核完成当前活动为止,延迟过程调用过程调用DPCDPC软件中断是实现这种软件中断是实现这种延迟的简便方法。延迟的简便方法。延迟过程调度和异步过程调用延迟过程调度和异步过程调用(2)(2)延迟过程调度延迟过程调度DPCDPC的用法:的用法:1)1)内核处理时钟中断内核处理时钟中断 2)2)执行执行“延迟函数

11、延迟函数”,3)3)设备驱动程序使用设备驱动程序使用DPCDPC完成完成I/OI/O请求。请求。延迟过程调度和异步过程调用(3)提交提交DPCDPC 高高掉电掉电如果如果IRQL降到比降到比Dispatch/DPC级低,级低,则则DPC中断发生。中断发生。Dispatch/DPCAPC低低定定时时器器到到时时,内内核核排排好好DPC队队列,列,准备释放等候在定时器上的所有准备释放等候在定时器上的所有 线程,然后内核请求软件中断。线程,然后内核请求软件中断。调度程序调度程序DPC中断之后,控制传中断之后,控制传送给(线程)调度程序送给(线程)调度程序DPCDPCDPCDPCDPCDPC调度程序执

12、行调度程序执行DPC中的每一个中的每一个DPC例程,然后使例程,然后使队列变空。如果需要,调度程序还重新安排处理器队列变空。如果需要,调度程序还重新安排处理器延迟过程调度和异步过程调用延迟过程调度和异步过程调用(4)(4)异步过程调用异步过程调用APCAPC为用户程序为用户程序和系统代码提供了一种在特和系统代码提供了一种在特殊用户线程的描述表殊用户线程的描述表(特殊的特殊的地址空间地址空间)中执行代码的方法。中执行代码的方法。延迟过程调度和异步过程调用延迟过程调度和异步过程调用(5)(5)两种两种APCAPC,用户用户态态APCAPC和核心和核心态态APCAPC。核心态核心态APCAPC在线程

13、描述表中运行并在线程描述表中运行并不需要得到目标线程的不需要得到目标线程的“允许允许”,而用户而用户态态APCAPC则需要得到目标线程则需要得到目标线程的的“允许允许”。核心核心态态APCAPC可以中断线程及执行过可以中断线程及执行过程,而不需要线程的干预和同意。程,而不需要线程的干预和同意。延迟过程调度和异步过程调用延迟过程调度和异步过程调用(6)(6)执行体使用核心执行体使用核心态态APCAPC来执行必须来执行必须在特定线程的地址空间在特定线程的地址空间(描述表描述表)中中完成操作系统的工作。完成操作系统的工作。环境子系统使用核心环境子系统使用核心态态APCAPC将线程将线程挂起或终止自身

14、的运行,或得到或挂起或终止自身的运行,或得到或设置它的用户态执行描述表。设置它的用户态执行描述表。POSIXPOSIX子系统使用核心子系统使用核心态态APCAPC来模仿来模仿POSIXPOSIX信号信号到到POSIXPOSIX进程的发送。进程的发送。延迟过程调度和异步过程调用延迟过程调度和异步过程调用(7)(7)设备驱动程序也使用核心设备驱动程序也使用核心态态APCAPC。一些一些Win32 APIWin32 API,如,如ReadiEXReadiEX,WriteFileEXWriteFileEX和和QueueUserAPCQueueUserAPC,使用用户使用用户态态APCAPC。5 5、W

15、indows 2000/XPWindows 2000/XP异常调度异常调度(1)(1)异常是直接由运行程序的执行产生异常是直接由运行程序的执行产生的情况的情况。WIN32WIN32引入了异常处理工引入了异常处理工具,允许应用程序在异常发生时可具,允许应用程序在异常发生时可以得到控制。以得到控制。应用程序可以固定这个状态并返回应用程序可以固定这个状态并返回到异常发生的地方展开堆栈,也可到异常发生的地方展开堆栈,也可以向系统声明不能识别异常,并继以向系统声明不能识别异常,并继续搜寻能处理异常的异常处理程序。续搜寻能处理异常的异常处理程序。Windows 2000/XPWindows 2000/XP

16、异常调度异常调度(2)(2)除由陷阱处理程序解决的异常外,除由陷阱处理程序解决的异常外,所有异常均由异常调度程序提供服所有异常均由异常调度程序提供服务,务,它它的任务是找到能处理该异常的任务是找到能处理该异常的异常处理程序。的异常处理程序。如果异常产生于核心态,异常调度如果异常产生于核心态,异常调度程序将调用一个例程来定位处理该程序将调用一个例程来定位处理该异常的异常处理程序。没有被处理异常的异常处理程序。没有被处理的核心态异常是一种致命的系统错的核心态异常是一种致命的系统错误。误。在在x86x86处理器上执行处理器上执行INT 2EINT 2E指令引指令引起系统陷阱,进入系统服务调度程起系统

17、陷阱,进入系统服务调度程序,序,传递的参数指明了被请求的系统服传递的参数指明了被请求的系统服务号。内核根据入口参数在系统服务号。内核根据入口参数在系统服务调度表务调度表(System Service(System Service Dispatch Table)Dispatch Table)中查找系统服务中查找系统服务信息。信息。6 6、Windows 2000/XPWindows 2000/XP系统服务调度系统服务调度(1)(1)用户态用户态核心态核心态系统服务调用系统服务调用陷阱处理程序陷阱处理程序系统服务系统服务调度程序调度程序系统服务调度表系统服务调度表0 01 12 23 3n n系统

18、服系统服务扩展务扩展系统服务系统服务2 2Windows2000/XP系统服务系统服务Windows 2000/XPWindows 2000/XP系统服务调度系统服务调度(2)(2)Windows 2000/XPWindows 2000/XP系统服务调度系统服务调度(3)(3)调用调用WriteFileWriteFile()()Win32Win32应用程序应用程序调用调用NtWriteFileNtWriteFile返回调用者返回调用者KERNEL32.DLLKERNEL32.DLL中的中的WriteFileWriteFileINT 2EINT 2E返回调用者返回调用者NTDLL.DLLNTDL

19、L.DLL中的中的NtWriteFileNtWriteFile调用调用NtWriteFileNtWriteFile解除中断解除中断NTOSKRNL.EXENTOSKRNL.EXE中的中的KiSystemServiceKiSystemService执行操作执行操作返回调用者返回调用者NTOSKRNL.EXE NTOSKRNL.EXE 中的中的NtWriteFileNtWriteFile调用调用USERUSER及及GDIGDI服务服务应用程序应用程序INT 2EINT 2E返回调用者返回调用者GDI32.DLLGDI32.DLL或或USER32.DLLUSER32.DLL调用调用WIN32WIN32例程例程解除中断解除中断NTOSKRNL.EXENTOSKRNL.EXE中的中的KiSystemServiceKiSystemService执行操作执行操作返回调用者返回调用者WIN32K.SYS WIN32K.SYS 中的服务入口点中的服务入口点用户态用户态核心态核心态WIN32WIN32专用专用WIN32WIN32专用专用所有子系统使用所有子系统使用软件中断软件中断软件中断软件中断WIN32WIN32内核内核APIAPIWIN32 USERWIN32 USER及及GDI APIGDI API

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com