系统机制

当一个硬件异常或者终端产生的时候,处理器在被中断的线程的内核栈中记录下足够多的机器状态信
息,因而它可以回到控制流中该点出继续进行。如果线程在用户模式下执行,那么windows就切换到

该线程的内核模式栈,在被中断的线程的内核栈上创建一个陷阱帧,并且把线程的执行状态保存到陷

阱帧中。用dt nt!_ktrap_frame可以看到陷阱帧的定义。

内核安装了中断陷阱处理器来响应设备的中断。中断陷阱处理器将控制权传递给一个负责处理该中断

的外部例程ISR,或者传递给一个响应该中断的内部内核例程。设备驱动程序提供了ISR来处理设备中

断,内核则为其他类型的中断提供了中断处理例程。

绝大多数x86系统依赖i8259A可编程中断控制器PIC或者i82489高级可编程中断控制器APIC

Windows所支持的硬件平台上,外部IO中断进入到中断控制器的一根线上,控制器然后在一根线上中

断处理器。一旦处理器被中断了,就询问控制器获取此中断请求(IRQ)。中断控制器将IRQ转译成一个

中断号,利用该号码作为在中断分发表IDT中的索引,并且将控制权传递给恰当的中断分发例程。

windows使用自己的中断优先级方案,称为中断请求级别IRQL,在x86中,内核在内部使用0-31的数值

代表IRQL,在x64和ia64中,内核采用0-15的数值来代表IRQL。数值越大,代表中断的优先级越高。

内核为软件中断定义了一组标准的IRQL,而HAL则将硬件中断号映射为IRQL。
31 高端
30 电源失败
29 处理器间的中断
28 时钟
27 性能剖析
26 设备n
.............
3 设备1
2 DPC/dispatch
1 APC (1和2是软件中断)
0 被动(普通线程在这一级别执行)

时间: 2024-10-15 03:46:26

系统机制的相关文章

windows内核初窥(二)-----系统机制

系统机制: windows2000为执行体.内核.设备驱动程序等核心态部分提供了一些基础机制.先让我们看看都有哪些: (1)陷阱调度:包括中断.延迟过程调用(DPC).异步过程调用(APC).异常处理.系统服务调度. (2)执行体对象管理 (3)同步机制:自旋锁.内核调度对象以及等待是如何实现的 (4)系统线程 (5)多种系统机制如windows2000全局标志 (6)本地过程调用 下面我们就来逐个分析: 陷阱调度: 中断和异常的实质是使CPU不按照正常的步骤来工作,硬件和软件都能够察觉到它们.

深入解析Windows操作系统笔记——CH3系统机制

3.系统机制 微软提供了一些基本组件让内核模式的组件使用: 1.陷阱分发,包括终端,延迟的过程调用(DPC),异步过程调用(APC),异常分发以及系统服务分发 2.执行体对象管理器 3.同步,包括自旋锁,内核分发器对象,以及等待是如何实现的. 4.系统辅助线程 5.其他的机制,比如Windows全局标记 6.本地过程调用 7.内核事件跟踪 8.Wow64 3.系统机制... 1 3.1陷阱分发... 3 3.1.1 中断分发... 4 3.1.1.1 硬件中断... 4 3.1.1.2 软中断请

MVC5路由系统机制详细讲解

请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,js,图片等),这一步是web form和mvc都是一样的,如果不是说明则说明是请求的一个动态页面,就会走asp.net的管道,mvc的程序请求都会走路由系统,会映射到一个Controller对应的Action方法,而web form请求动态页面是会查找本地实际存在一个aspx文件.下面通过一个AS

深入了解ios系统机制

1.什么叫ios? ios一般指ios(Apple公司的移动操作系统) . 苹果iOS是由苹果公司开发的移动操作系统.苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch.iPad以及Apple TV等产品上.iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统.原本这个系统名为iPhone OS,直到2010WWDC大会上宣布改名为iOS.最新版本为iO

ASP.NET MVC5路由系统机制详细讲解

请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,js,图片等),这一步是web form和mvc都是一样的,如果不是则说明是请求的是一个动态页面,就会走asp.net的管道,mvc的程序请求都会走路由系统,会映射到一个Controller对应的Action方法,而web form请求动态页面是会查找本地实际存在一个aspx文件.下面通过一个ASP

Android系统机制解析-公共服务

创建一个公共服务类后有两种使用方式,第一种将公共服务放到自己的项目中运行,这样外界无法访问和控制这个公共服务类,这个服务的所有变量.函数都在自己的项目中运行,可以直接通过startIntent(Service)重复调用此服务. 第二种是将公共服务配置到自己项目的xml文件中,并设置process=":remoteXXX"属性,此后将不能直接通过startIntent(Service)重复调用此服务,这也是安卓系统的一个权限机制..如果仍想直接调用,可以采用广播的形式,类似一下的架构:

iOS 之 系统机制

iOS 沙盒 iOS 8 之 新特性 iOS 操作系统整体架构层次讲解

zabbix(一):zabbix自动化监控系统搭建详解

一.监控系统机制 1.监控工具工作机制 监控是通过传感器采集数据,在经过数据的存储加工后,进行展示.一般采集的数据为时间序列数据,即随时间变化而动态变化的数据:当采集到的数据超出阈值将会报警.监控功能的实现可基于专用agent.ssh.SNMP协议.IPMI(专业级监控接口IntelligentPlatform Management Interface,指挥平台管理接口) 2.SNMP协议 Simple Network Management Protocol,简单网络管理协议.由一组网络管理的标

Qt的内部进程通信机制 [转]

Qt 作为一种跨平台的基于 C++ 的 GUI系统,能够提供给用户构造图形用户界面的强大功能.自从 1996 年 Qt 被 Trolltech公司发布以来,该系统成为世界上很多成功的图形用户应用所使用的主要系统.更为重要的是,Linux 操作系统的桌面环境系统 KDE 也是基于 Qt构造的.目前,Qt 已经提供了对包括 MS/Windows.Unix/X11 和嵌入式平台的支持,得到了越来越广泛的应用. 在 Qt 系统中,不仅有着构造完善的系统结构,而且为了满足用户对编写图形用户界面应用的种种需