windows xp中断处理

windows xp中断处理

ID:19902264

大小:1.08 MB

页数:23页

时间:2018-10-07

windows xp中断处理_第1页
windows xp中断处理_第2页
windows xp中断处理_第3页
windows xp中断处理_第4页
windows xp中断处理_第5页
资源描述:

《windows xp中断处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实例研究:Windows2000/XP中断处理1、Windows2000/XP中断处理概述(1)中断主要由I/O设备、处理器时钟或定时器、可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内容无关。异常是同步事件,它是某一个特定指令执行的结果。异常的例子是内存访问错误、调试指令及被零除。内核也将系统服务调用视作异常。Windows2000/XP中断处理 概述(2)硬件和软件都可以产生中断和异常,如总线出错异常由硬件造成,而被零除异常是由软件引起的;同样,I/O设备可产生中断,而内核自身也可以发

2、出中断。Windows2000/XP中断处理 概述(3)陷阱指处理意外事件的一种硬件机制,当中断或异常发生时,它能发现并俘获正在执行的线程,把它从用户态切换到核心态,并将控制权交给内核的陷阱处理程序。Windows2000/XP中断处理 概述(4)Windows陷阱调度中断服务例程中断服务例程中断服务例程异常调度器虚存管理器的页面管理器中断调度器系统服务调度器异常调度器陷阱处理程序异常帧虚拟地址异常硬件异常软件异常系统服务调用中断2、Windows2000/XP中断类型和优先级(1)•中断请求级IRQL(I

3、nterruptRequestLevel)•内核维护的IRQL是可以移植的•IRQL将按照优先级排列中断,并按照优先级顺序服务中断,较高优先级中断可以抢占较低优先级中断服务Windows2000/XP中断类型和优先级(2)Windows中断请求级系统关闭高31掉电30处理器内的中断29时钟28配置文件设备n………设备1Dispatch/DPC2APC1低0硬件中断软件中断正常的线程执行Windows2000/XP中断类型和优先级(3)Windows中断屏蔽高掉电处理器内的中断时钟配置文件设备n………设备1在

4、处理器A上被屏蔽的中断Dispatch/DPCAPC低IRQL=时钟处理器A在处理器B上被屏蔽的中断IRQL=Dispatch/DPC处理器BWindows2000/XP硬件中断处理(1)•中断产生时,陷阱处理程序保存运行程序的状态,调用中断调度程序。•中断调度程序提高处理器的IRQL到中断源的级别,以便在中断服务过程中屏蔽等于和低于当前中断源级别的其他中断。•重新启用中断,以使高优先级的中断仍然能够得到服务。Windows2000/XP硬件中断处理(2)•Windows使用中断分配表IDT(Interru

5、ptDispatchTable)来查找处理特定中断的例程。•中断源的IRQL作为表的索引,表的入口指向中断处理例程。Windows2000/XP硬件中断处理(3)Windows中断服务高掉电处理器间的中断时钟设备n………设备1②中断调度程序接收到中断源的IRQL,用作查询IDT的索引Dispatch/DPCAPC低①有中断产生………线程调度程序/DPC处理程序(无)系统关闭例程系统调电例程处理器间中断处理程序时钟处理程序设备nISR设备1ISRAPC处理程序③中断调度程序跟随该指针,调用相应的处理程序Win

6、dows2000/XP软件中断处理多数中断由硬件产生,但内核也为多种任务产生软件中断,包括:启动线程调度、处理计时器到时、在特定线程的描述表中异步执行一个过程及支持异步I/O等。4、延迟过程调度和异步过程调用(1)内核直接调用调度程序实现描述表切换时,在深入多层代码内检测到应该进行重调度,理想的解决方法是请求调度,但应延迟调度的产生直到内核完成当前活动为止,延迟过程调用DPC软件中断是实现这种延迟的简便方法。延迟过程调度和异步过程调用(2)延迟过程调度DPC的用法:1)内核处理时钟中断2)执行“延迟函数”,

7、3)设备驱动程序使用DPC完成I/O请求。延迟过程调度和异步过程调用(3)提交DPC高掉电………②如果IRQL降到比Dispatch/DPC级低,则DPC中断发生。Dispatch/DPCAPC低①定时器到时,内核排好DPC队列,准备释放等候在定时器上的所有线程,然后内核请求软件中断。………调度程序③DPC中断之后,控制传送给(线程)调度程序DPCDPCDPC④调度程序执行DPC中的每一个DPC例程,然后使队列变空。如果需要,调度程序还重新安排处理器延迟过程调度和异步过程调用(4)异步过程调用APC为用户程

8、序和系统代码提供了一种在特殊用户线程的描述表(特殊的地址空间)中执行代码的方法。延迟过程调度和异步过程调用(5)两种APC,用户态APC和核心态APC。核心态APC在线程描述表中运行并不需要得到目标线程的“允许”,而用户态APC则需要得到目标线程的“允许”。核心态APC可以中断线程及执行过程,而不需要线程的干预和同意。延迟过程调度和异步过程调用(6)执行体使用核心态APC来执行必须在特定线程的地址空间(描述表)中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。