Windows XP中断处理.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows XP中断处理

实例研究:Windows 2000/XP中断处理 1、Windows 2000/XP中断处理概述(1) 中断主要由I/O设备、处理器时钟或定时器、可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内容无关。 异常是同步事件,它是某一个特定指令执行的结果。异常的例子是内存访问错误、调试指令及被零除。内核也将系统服务调用视作异常。 Windows 2000/XP中断处理 概述(2) 硬件和软件都可以产生中断和异常,如总线出错异常由硬件造成,而被零除异常是由软件引起的;同样,I/O设备可产生中断,而内核自身也可以发出中断。 第*页 Windows 2000/XP中断处理 概述(3) 陷阱指处理意外事件的一种硬件机制,当中断或异常发生时,它能发现并俘获正在执行的线程,把它从用户态切换到核心态,并将控制权交给内核的陷阱处理程序。 第*页 Windows 2000/XP中断处理 概述(4) Windows陷阱调度 中断服务例程 中断服务例程 中断服务例程 异常调度器 虚存管理器的 页面管理器 中断调度器 系统服务调度器 异常调度器 陷阱处理程序 异常帧 虚拟地 址异常 硬件异常 软件异常 系统服 务调用 中断 第*页 2、Windows 2000/XP中断类型和优先级(1) ?中断请求级IRQL(Interrupt Request Level) ?内核维护的IRQL是可以移植的 ?IRQL将按照优先级排列中断,并按照优先级顺序服务中断,较高优先级中断可以抢占较低优先级中断服务 第*页 Windows 2000/XP中断类型和优先级(2) Windows中断请求级 系统关闭 高 31 掉电 30 处理器内的中断 29 时钟 28 配置文件 设备n ……… 设备1 Dispatch/DPC 2 APC 1 低 0 硬件中断 软件中断 正常的线程执行 第*页 Windows 2000/XP中断类型和优先级(3) Windows中断屏蔽 高 掉电 处理器内的中断 时钟 配置文件 设备n ……… 设备1 在处理器A上 被屏蔽的中断 Dispatch/DPC APC 低 IRQL=时钟 处理器A 在处理器B上 被屏蔽的中断 IRQL= Dispatch/DPC 处理器B 第*页 Windows 2000/XP硬件中断处理(1) ?中断产生时,陷阱处理程序保存运行程序的状态,调用中断调度程序。 ?中断调度程序提高处理器的IRQL到中断源的级别,以便在中断服务过程中屏蔽等于和低于当前中断源级别的其他中断。 ?重新启用中断,以使高优先级的中断仍然能够得到服务。 第*页 Windows 2000/XP硬件中断处理(2) ?Windows使用中断分配表IDT(Interrupt Dispatch Table)来查找处理特定中断的例程。 ?中断源的IRQL作为表的索引,表的入口指向中断处理例程。 第*页 Windows 2000/XP硬件中断处理(3) Windows中断服务 高 掉电 处理器间的中断 时钟 设备n … … … 设备1 ②中断调度程序接收 到中断源的IRQL, 用作查询IDT的索引 Dispatch/DPC APC 低 ①有中断产生 … … … 线程调度程序/ DPC处理程序 (无) 系统关闭例程 系统调电例程 处理器间中断处理程序 时钟处理程序 设备n ISR 设备1 ISR APC处理程序 ③中断调度程序跟随该指针, 调用相应的处理程序 第*页 Windows 2000/XP软件中断处理 多数中断由硬件产生,但内核也为多种任务产生软件中断,包括:启动线程调度、处理计时器到时、在特定线程的描述表中异步执行一个过程及支持异步I/O等。 第*页 4、延迟过程调度和异步过程调用(1) 内核直接调用调度程序实现描述表切换时,在深入多层代码内检测到应该进行重调度,理想的解决方法是请求调度,但应延迟调度的产生直到内核完成当前活动为止,延迟过程调用DPC软件中断是实现这种延迟的简便方法。 第*页 延迟过程调度和异步过程调用(2) 延迟过程调度DPC的用法: 1)内核处理时钟中断 2)执行“延迟函数”, 3)设备驱动程序使用DPC完成I/O请求。 第*页 延迟过程调度和异步过程调用(3) 提交DPC 高 掉电 … … … ②如果IRQL降到比 Dispatch/DPC级低, 则DPC中断发生。 Dispatch/DPC APC 低 ①定时器到时,内核排好DPC队列, 准备释放等候在定时器上的所有 线程,然后内核请求软件中断。 … … … 调度程序 ③DPC中断之

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档