X86/X64的页面错误异常号是0xe,页面错误:一个线程企图访问虚拟内存中没有定义的或者已经存在的页面时产生的异常。Windows支持的硬件体系结构允许最多可达256个IDT项。一台PC所能支持的中断IRQ数量是由该机器的中断控制器的具体设计决定的。
由于大多数X86都依赖一个硬件i8259A可编程中断控制器(PIC)在单处理器系统上有15条中断线。
0:kd>!idt
DumpingIDT:
37:806e6864hal!PicSpuriousService37
3d:806e7e2chal!HalpApcInterrupt
41:806e7c88hal!HalpDispatchInterrupt
50:806e693chal!HalpApicRebootService
62:8a3019548a38ecb8(KINTERRUPT8a301918)
63:89d3d044NDIS!ndisMIsr(KINTERRUPT89d3d008)
8a225cb8(KINTERRUPT89cc7bb0)
73:8a056becVIDEOPRT!pVideoPortInterrupt(KINTERRUPT8a056bb0)
8a225cb8(KINTERRUPT89cd8938)
8a225cb8(KINTERRUPT89ccf938)
83:8a2b6afc8a38ecb8(KINTERRUPT8a2b6ac0)
8a38ecb8(KINTERRUPT8a2b5bb0)
NDIS!ndisMIsr(KINTERRUPT89ce2930)
92:899e1becserial!SerialCIsrSw(KINTERRUPT899e1bb0)
93:899e8044i8042prt!I8042KeyboardInterruptService(KINTERRUPT899e8008)
a4:89cdfbec8a225cb8(KINTERRUPT89cdfbb0)
8a225cb8(KINTERRUPT89cd0bb0)
b1:8a36f044ACPI!ACPIInterruptServiceRoutine(KINTERRUPT8a36f008)
8a1d0cb8(KINTERRUPT8a075508)
b4:89d38bec8a225cb8(KINTERRUPT89d38bb0)
HDAudBus!AzController::Isr(KINTERRUPT89d32410)
c1:806e6ac0hal!HalpBroadcastCallService
d1:806e5e54hal!HalpClockInterrupt
e1:806e7048hal!HalpIpiHandler
e3:806e6dachal!HalpLocalApicErrorService
fd:806e75a8hal!HalpProfileInterrupt
fe:806e7748hal!HalpPerfInterrupt
查看PIC和APIC
0:kd>!pic
-----IRQNumber-----000102030405060708090A0B0C0D0E0F
Physicallyinservice:YY.Y....YY.Y....
Physicallymasked:YYY.Y.Y.YYY.Y.Y.
Physicallyrequested:.Y.Y.....Y.Y....
0:kd>
对于本机单CPU双核来看:是否使用了MPSHAL?
lkd>!apic
Apic@fffe0000ID:1(80050010)LogDesc:02000000DestFmt:ffffffffTPR41
TimeCnt:0be420e0clkSpurVec:1fFaultVec:e3error:0
IpiCmd:01000000`00040041Vec:41FixedDelDest=Selfedghigh
Timer..:00000000`000300fdVec:FDFixedDelDest=Selfedghighm
Linti0.:00000000`0001001fVec:1FFixedDelDest=Selfedghighm
Linti1.:00000000`000184ffVec:FFNMIDest=Selflvlhighm
TMR:63,73,A4,B1,B4
IRR:
ISR:
0:kd>!ioapic
IoApic@FEC00000ID:0(0)Arb:0
Inti00.:00000000`00000000Vec:00FixedDelPh:00000000edghigh
仅在windows2003上菜支持!Irql查看一个处理器的IRQL
lkd>!pcr
KPCRforProcessor0atffdff000:
Major1Minor1
NtTib.ExceptionList:ffffffff
NtTib.StackBase:805524f0
NtTib.StackLimit:8054f700
NtTib.SubSystemTib:00000000
NtTib.Version:00000000
NtTib.UserPointer:00000000
NtTib.SelfTib:00000000
SelfPcr:ffdff000
Prcb:ffdff120
Irql:00000000
IRR:00000000
IDR:ffffffff
InterruptMode:00000000
IDT:8003f400
GDT:8003f000
TSS:80042000
CurrentThread:8055ce60
NextThread:00000000
IdleThread:8055ce60
DpcQueue:
可以使用DDK上头文件中的ntddk.H定义的PCR和PRCB的信息。不幸的是在不适用延迟IRQL的系统上,比如本机器AMDAthlon64X26000+的windowsXPSP3上就不支持,因此为0,需要至少WINDOWS2003
http://msdn.microsoft.com/zh-cn/windows/hardware/gg463382
下载安装kernrates软件,进行内核性能剖析程序来分析性能。
C:\ProgramFiles\SupportTools>cd"c:\ProgramFiles\KrView\Kernrates"
C:\ProgramFiles\KrView\Kernrates>dir
驱动器C中的卷没有标签。
卷的序列号是18F6-A188
C:\ProgramFiles\KrView\Kernrates的目录
2012-02-0716:57<DIR>.
2012-02-0716:57<DIR>..
2003-11-0716:58269,312Kernrate_i386_Win2000.exe
2003-11-0716:58129,024Kernrate_i386_XP.exe
2003-11-0716:59326,656Kernrate_ia64_XP.exe
3个文件724,992字节
2个目录146,187,862,016可用字节
C:\ProgramFiles\KrView\Kernrates>Kernrate_i386_XP.exe
/==============================\
<KERNRATELOG>
\==============================/
Date:2012/02/07Time:16:58:17
MachineName:AMD6000
NumberofProcessors:2
PROCESSOR_ARCHITECTURE:x86
PROCESSOR_LEVEL:15
PROCESSOR_REVISION:4303
PhysicalMemory:2816MB
PagefileTotal:2656MB
VirtualTotal:2047MB
PageFile1:(null),0MB
OSVersion:5.1Build2600Service-Pack:3.0
WinDir:C:\WINDOWS
KernrateUser-SpecifiedCommandLine:
Kernrate_i386_XP.exe
KernelProfile(PID=0):Source=Time,
UsingKernrateDefaultRateof25000events/hit
Startingtocollectprofiledata
***>Pressctrl-ctofinishcollectingprofiledata
------------OverallSummary:--------------
P0K0:00:08.562(8.8%)U0:00:11.109(11.4%)I0:01:17.703(79.8%)DPC
0:00:01.656(1.7%)Interrupt0:00:00.062(0.1%)
Interrupts=142334,InterruptRate=1462/sec.
P1K0:00:10.562(10.8%)U0:00:06.406(6.6%)I0:01:20.406(82.6%)DPC
0:00:05.828(6.0%)Interrupt0:00:00.265(0.3%)
Interrupts=73111,InterruptRate=751/sec.
TOTALK0:00:19.125(9.8%)U0:00:17.515(9.0%)I0:02:38.109(81.2%)DPC
0:00:07.484(3.8%)Interrupt0:00:00.328(0.2%)
TotalInterrupts=215445,TotalInterruptRate=2213/sec.
TotalProfileTime=97375msec
BytesStartBytesStopByt
esDiff.
AvailablePhysicalMemory,1864134656,2005221376,141086
720
AvailablePagefile(s),1864282112,2005024768,140742
656
AvailableVirtual,2131689472,2130640896,-1048
576
AvailableExtendedVirtual,0,0,
0
TotalAvg.Rate
ContextSwitches,571193,5866/sec.
SystemCalls,2132527,21900/sec.
PageFaults,325110,3339/sec.
I/OReadOperations,11188,115/sec.
I/OWriteOperations,8299,85/sec.
I/OOtherOperations,29196,300/sec.
I/OReadBytes,39124405,3497/I/O
I/OWriteBytes,16790740,2023/I/O
I/OOtherBytes,4785210,164/I/O
-----------------------------
ResultsforKernelMode:
-----------------------------
OutputResults:KernelModuleCount=142
PercentageinthefollowingtableisbasedontheTotalHitsfortheKernel
Time69611hits,25000eventsperhit--------
ModuleHitsmsec%TotalEvents/Sec
processr608559735987%15626444
ntkrnlpa4118973755%1057252
ati2cqag947973591%243172
hal907973751%232862
ati2dvag838973591%215182
PECKP701973591%180003
win32k654973590%167935
USBPORT130973590%33381
athuw81973590%20799
RtkHDAud38973590%9757
usbehci38973590%9757
ati2mtag37973590%9500
kmixer34973590%8730
tcpip30973590%7703
NDIS24973590%6162
Ntfs23973590%5905
afd21973590%5392
Npfs18973590%4622
portcls15973590%3851
l151x8613973590%3338
sptd13973590%3338
usbhub12973590%3081
wdf010009973590%2311
watchdog6973590%1540
fltMgr6973590%1540
ipnat5973590%1283
LiveKdD4973590%1027
avipbb4973590%1027
ati3duag3973590%770
ks3973590%770
avgntflt2973590%513
el90xbc52973590%513
usbohci2973590%513
wdmaud1973590%256
sniffer1973590%256
LMouFilt1973590%256
mouhid1973590%256
LHidFilt1973590%256
HIDPARSE1973590%256
avkmgr1973590%256
rdbss1973590%256
ipsec1973590%256
psched1973590%256
TDI1973590%256
av261r6u1973590%256
HDAudBus1973590%256
Mup1973590%256
CLASSPNP1973590%256
PartMgr1973590%256
PCIIDEX1973590%256
WMILIB1973590%256
=================================ENDOFRUN==================================
==============================NORMALENDOFRUN==============================
C:\ProgramFiles\KrView\Kernrates>
由此可见系统在内核模式下花了TOTALK0:00:19.125(9.8%)的时间。碰撞率最高的模块是process,这个是CPU处理器驱动程序。
在X86的多处理器系统上,IRQ本质上是随机的,但在X64或者IA64上,IRQ是16除中断向量号。
因为windows并没有以任何一种可控的方式对设备IRQ进行优先级处理,而且用户的应用程序只能在处理器的IRQL为被动级别的时候才能执行,所以windows不适合作实时系统。
声明:真相:windowsXPEmbedded并没有实时特性,而是借助venturcom公司将实时内核内嵌到自定义好的HAL中。
相关推荐
本书是著名的操作系统内核专家Mark Russinovich和David Solomon撰写的Windows操作系统原理的最新版著作,全面和深入地阐述了Windows操作系统的整体结构以及内部工作细节。本书针对 Windows Server 2003、Windows XP...
总的来说,操作系统笔记涵盖了操作系统的基础知识,包括其核心功能、类型、特征以及关键操作,如多道程序设计、中断处理和系统调用,这些都是理解和学习操作系统不可或缺的部分。对于软件专业的学生和开发者而言,...
本笔记最大的特点就是对操作系统的基本概念解释的很清楚;... 最后,这本书比Andrew S.Tanenbaum的那本经典的《现代操作系统》还要更加深入一些,不仅可以让读者入门,还可以让读者对操作系统的理解更加的深刻。
1. **Windows API**:Windows API是一组函数、数据类型和常量,用于与Windows操作系统进行交互。笔记可能会详细介绍如何使用API函数进行窗口创建、消息处理、内存管理、线程同步等操作。 2. **窗口和消息机制**:...
根据提供的文件信息,我们可以深入解析关于Windows操作系统的相关内容。标题为“深入解析Windows操作系统教程微软写的~~~”,描述部分提到这是微软编写的操作系统教材。基于这些信息,下面将详细阐述与该教材相关的...
【操作系统笔记】 操作系统是计算机系统的核心组成部分,它管理和控制计算机硬件及软件资源,为用户提供一个与硬件分离的友好交互界面。在软件设计师的工作中,理解操作系统的基本原理和功能至关重要。 1. 操作系统...
- **Windows操作系统中的内存管理**: - 物理内存管理 - 虚拟内存管理 - **Unix文件系统的特点**: - 文件权限模型 - 文件系统挂载机制 - **嵌入式操作系统的特点与应用**: - 实时性要求 - 低功耗设计 以上...
总的来说,深入浅出MFC读书笔记2涉及的内容包括MFC的框架结构、类库分类、数据类型、全局函数以及链接方式的选择,这些都是理解和使用MFC开发Windows应用程序的基础。通过学习这些知识点,开发者能够更好地利用MFC...
本笔记最大的特点就是对操作系统的基本概念解释的很清楚;... 最后,这本书比Andrew S.Tanenbaum的那本经典的《现代操作系统》还要更加深入一些,不仅可以让读者入门,还可以让读者对操作系统的理解更加的深刻。
首先,操作系统笔记部分可能会涵盖以下几个核心概念: 1. **进程与线程**:进程是程序的执行实例,每个进程都有独立的内存空间。线程是进程内的执行单元,共享同一内存空间,使得多任务并行执行成为可能。理解它们...
总的来说,《Windows Server 2003 学习笔记》作为备考MCSE的参考资料,提供了全面且深入的Windows Server 2003操作系统的知识体系,对提升IT专业人士的技术能力和解决问题的能力有着极大的帮助。通过这份笔记,读者...
总之,“Windows驱动学习笔记”将引导你深入理解Windows驱动程序的工作原理,提供编写、调试和优化驱动程序所需的知识,是IT专业人士提升技术能力的宝贵资料。通过阅读和实践,你可以逐步掌握这个复杂而关键的领域。
总的来说,"深入浅出MFC"的学习资源可以帮助开发者从基础到高级全面了解MFC,通过实例和笔记加深理解,从而更高效地开发Windows应用程序。无论是初学者还是有一定经验的程序员,都能从中受益,提升自己的MFC编程能力...
《WINDOWS核心编程》笔记合集是一份详尽深入的学习资源,涵盖了Windows操作系统内核编程的各个方面。这份资料可能包括了Windows API的底层实现、进程与线程管理、内存管理、I/O操作、设备驱动程序开发等多个关键主题...
在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 Windows操作系统采用了一种基于消息的事件驱动模型。这意味着系统的各种事件(比如...
《Windows程序设计》是计算机科学领域的一本经典教材,它深入浅出地讲解了如何在Windows操作系统环境下进行程序开发。这份“windows程序设计笔记”很可能包含了作者在学习和实践中积累的丰富经验和心得,对于我们...
操作系统是计算机科学中的核心组成部分,它是管理计算机硬件和软件资源的中心软件,旨在提供一个有效、安全、...学习者应深入理解操作系统如何管理和优化计算机资源,以及如何通过各种机制保证系统稳定、高效地运行。
在深入了解MFC之前,我们首先需要理解Windows操作系统的基本工作原理,尤其是消息驱动模型以及回调函数的概念。 **1.1 Windows消息机制** Windows操作系统本质上是一个基于消息的事件驱动系统。这意味着所有的用户...
在阅读《操作系统真相还原》这本书的过程中,我们深入探讨了操作系统的核心机制,其中之一是了解如何获取计算机的物理内存容量。这是操作系统设计与实现中的基础部分,因为它对于系统资源管理至关重要。本章将详细...