王雷北京航空航天大学计算机系.ppt
《王雷北京航空航天大学计算机系.ppt》由会员分享,可在线阅读,更多相关《王雷北京航空航天大学计算机系.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Microsoft Windows 2000/XP王雷北京航空航天大学计算机系 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望Microsoft Windows 2000/XP内容Windows 2000/XP内存管理内存管理Windows 2000/XP外存管理外存管理Windows 2000/XP高速缓存管理高速缓存管理2Microsoft Windows 2000/XP工具NtNt资源包资源包Platform SDKNT DDK3Microsoft Wind
2、ows 2000/XP调试工具CDB.exei386kd.exewindbg.exesoftice()4Microsoft Windows 2000/XP5Microsoft Windows 2000/XP配置配置宿主机调试环境配置宿主机调试环境双机串口通讯连接双机串口通讯连接目目标标机机的的WINDOWS启启动动时时加加上上/debug参数参数安装与目标机系统相匹配的安装与目标机系统相匹配的Symbol文件文件6Microsoft Windows 2000/XPkd!processfieldsPcb:0 x0ExitStatus:0 x68LockEvent:0 x6cLockCount:0
3、 x7cCreateTime:0 x80ExitTime:0 x88LockOwner:0 x90UniqueProcessId:0 x94ActiveProcessLinks:0 x98QuotaPeakPoolUsage0:0 xa0QuotaPoolUsage0:0 xa8PagefileUsage:0 xb0CommitCharge:0 xb4PeakPagefileUsage:0 xb8PeakVirtualSize:0 xbcVirtualSize:0 xc0Vm:0 xc87Microsoft Windows 2000/XPLastProtoPteFault:0 xf8Debug
4、Port:0 xfcExceptionPort:0 x100ObjectTable:0 x104Token:0 x108WorkingSetLock:0 x10cWorkingSetPage:0 x12cProcessOutswapEnabled:0 x130ProcessOutswapped:0 x131AddressSpaceInitialized:0 x132AddressSpaceDeleted:0 x133AddressCreationLock:0 x134ForkInProgress:0 x158VmOperation:0 x15cVmOperationEvent:0 x160Pa
5、geDirectoryPte:0 x164LastFaultCount:0 x168VadRoot:0 x170VadHint:0 x174CloneRoot:0 x178NumberOfPrivatePages:0 x17cNumberOfLockedPages:0 x180ForkWasSuccessful:0 x15eExitProcessCalled:0 x186CreateProcessReported:0 x187SectionHandle:0 x188Peb:0 x18cSectionBaseAddress:0 x190QuotaBlock:0 x194LastThreadExi
6、tStatus:0 x198WorkingSetWatch:0 x19cInheritedFromUniqueProcessId:0 x1a4GrantedAccess:0 x1a88Microsoft Windows 2000/XPkd!process 0PROCESS80147120Cid:0000Peb:00000000ParentCid:0000DirBase:00030000ObjectTable:80731e88TableSize:254.Image:IdleVadRoot0Clone0Private0.Modified0.Locked0.801472DCMutantStateLo
7、ckedOwningThread0ProcessLockOwnedbyThread0Tokene1000750ElapsedTime7:41:18.0524UserTime0:00:00.0000KernelTime9:34:32.0780QuotaPoolUsagePagedPool0QuotaPoolUsageNonPagedPool0WorkingSetSizes(now,min,max)(4,50,450)(16KB,200KB,1800KB)PeakWorkingSetSize4VirtualSize0MbPeakVirtualSize0MbPageFaultCount1Memory
8、PriorityBACKGROUNDBasePriority0CommitCharge0THREAD80147320Cid0.0Teb:00000000Win32Thread:00000000RUNNING9Microsoft Windows 2000/XP内存管理组成部分组成部分地址空间的布局地址空间的布局地址转换机制地址转换机制内存分配方式内存分配方式缺页处理缺页处理工作集工作集物理内存管理物理内存管理其他内存相关机制其他内存相关机制10Microsoft Windows 2000/XP组成部分一一组组执执行行体体系系统统服服务务程程序序,用用于于虚虚拟拟内内存存的的分分配配、回回收收和和
9、管管理理。大大多多数数这这些些服服务务都都是是通通过过Win32 API 或或内内核核态态的的设设备备驱动程序接口形式出现。驱动程序接口形式出现。一一个个转转换换无无效效和和访访问问错错误误陷陷阱阱处处理理程程序序用用于于解解决决硬硬件件监监测测到到的的内内存存管管理理异异常常,并代表进程将虚拟页面装入内存。并代表进程将虚拟页面装入内存。六个的关键组件六个的关键组件11Microsoft Windows 2000/XP工工作作集集管管理理器器(16优优先先):当当空空闲闲内内存存低低于于某某一一界界限限时时,便便启启动动所所有有的的内内存存管管理理策策略略,如如:工工作作集集的的修修整整、老老
10、化化和和已已修修改页面的写入等。改页面的写入等。进进程程/堆堆栈栈交交换换程程序序(23优优先先):完完成成进进程和内核线程堆栈的换入和换出操作。程和内核线程堆栈的换入和换出操作。已已修修改改页页面面写写入入器器(17优优先先):将将修修改改链表上的链表上的“脏脏”页写回到适当的页文件。页写回到适当的页文件。12Microsoft Windows 2000/XP映映射射页页面面写写入入器器(17优优先先):将将映映射射文文件中脏页写回磁盘。件中脏页写回磁盘。废废弃弃段段线线程程(18优优先先):负负责责系系统统高高速速缓存和页面文件的扩大和缩小。缓存和页面文件的扩大和缩小。零零页页线线程程(0
11、优优先先):将将空空闲闲链链表表中中的的页页面清零。面清零。13Microsoft Windows 2000/XP内存布局应用程序代码应用程序代码全程变量全程变量每个线程堆栈每个线程堆栈DLL代码代码3GB用户空间用户空间1GB系统空间系统空间 7FFFFFFF 80000000 内核和执行体内核和执行体 HAL 引导驱动程序引导驱动程序 C0000000 进程页表进程页表 BFFFFFFF 超空间超空间 C0000000 C0800000 系统高速缓存系统高速缓存 分页缓冲池分页缓冲池 未分页缓冲池未分页缓冲池 FFFFFFFF FFFFFFFF14Microsoft Windows 200
12、0/XP系统代码(Ntoskrnl,HAL)和一些系统中初始的未分页缓冲池系统映射视图(例如,Win32k.sys)或者会话空间超空间和进程工作集列表进程的页表和页目录附加的系统PTE(高速缓存可以扩展到这)没有使用,不可访问HAL使用故障转储信息未分页缓冲池扩充系统PTE分页缓冲池系统高速缓存系统工作集列表80000000C0800000C0400000C0000000A4000000A0000000FFBE0000EB000000(min)E1000000C1000000C0C00000FFC0000015Microsoft Windows 2000/XP系系统统代代码码 包包括括操操作作
13、系系统统映映像像、HAL和和用用于引导系统的设备驱动程序。于引导系统的设备驱动程序。系统映射视图系统映射视图 用来映射用来映射Win32子系统可子系统可加载的核心态部分加载的核心态部分Win32k.sys,以及它,以及它使用的核心态图形驱动程序。使用的核心态图形驱动程序。会话空间会话空间 用来映射一个用户的会话信息。用来映射一个用户的会话信息。进程页表和页目录进程页表和页目录 描述虚拟地址映射的描述虚拟地址映射的结构。结构。超空间超空间 一个特殊的区域用来映射进程工一个特殊的区域用来映射进程工作集链表,并为创建临时映射物理页面。作集链表,并为创建临时映射物理页面。16Microsoft Win
14、dows 2000/XP系统工作集链表系统工作集链表 描述系统工作集的工作描述系统工作集的工作集链表数据结构。集链表数据结构。系统高速缓存系统高速缓存 用来映射在系统高速缓存用来映射在系统高速缓存中打开的文件的虚拟空间。中打开的文件的虚拟空间。分页缓冲池分页缓冲池 可分页系统内存堆。可分页系统内存堆。系统页表项系统页表项 系统系统PTE缓冲池,用来映射缓冲池,用来映射系统页面。系统页面。非分页缓冲池非分页缓冲池 不可分页的系统内存堆。不可分页的系统内存堆。17Microsoft Windows 2000/XP地址变换过程核心进程核心进程页目录索引页目录索引页表索引页表索引字节索引字节索引CR3
15、物理地址IndexPFNPDE页目录(每个进程建立一张,1024项)IndexPFNPTE页表(每个进程最多有512个,系统空间最多占用512个,每张表1024项)Index物理地址空间要求的字节要 求 的页18Microsoft Windows 2000/XP 进程.进程进程1 1的页表的页表进程进程2 2的页表的页表PTE 0进程进程1 1的的页目录页目录进程进程2 2的的页目录页目录PTE 0PDE 0PDE 0System PTE 0PDE 511PDE 512PDE nPDE nPDE 512PDE 511 .System PTE n .系统页表系统页表进程仍然没有访问系统页表各进程
16、私有19Microsoft Windows 2000/XP快表TLB .虚页5 页框290虚页64 无效虚页17 页框1004虚页65 页框801虚页6 页框14虚页7 无效 TLBTLB虚页号:17虚拟地址虚拟地址同时读取并比较匹配20Microsoft Windows 2000/XP内存分配方式以页单位的虚拟内存函数(以页单位的虚拟内存函数(Virtualxxx),保留与提交保留与提交内存映射文件函数(内存映射文件函数(CreateFileMapping,MapViewOfFile),堆函数(堆函数(Heapxxx 和早期的接口和早期的接口Localxxx 和和Globalxxx)。)。2
17、1Microsoft Windows 2000/XP虚拟地址描述符范围:20000000到2000FFFF保护限制:读/写继承:有范围:00002000到0000FFFF保护限制:只读继承:无范围:4E000000到4F000000保护限制:复制可写入继承:有范围:32000000到3300FFFF保护限制:只读继承:无范围:7AAA0000到7AAA00FF保护限制:读/写继承:无22Microsoft Windows 2000/XP内存映射文件加加载载和和执执行行.exe和和dll文文件件,这这可可以以节节省省应用程序启动所需的时间;应用程序启动所需的时间;访访问问磁磁盘盘上上的的数数据据
18、文文件件,这这可可以以减减少少文文件件I/O,并且不必对文件进行缓存;,并且不必对文件进行缓存;实现多个进程间的数据共享。实现多个进程间的数据共享。23Microsoft Windows 2000/XP区域对象(section object)区域创建区域打开区域扩展区域映射/非映射视图查询区域最大规模页保护限制页文件/映射文件基准的/非基准的对象类型对象类型对象体属性对象体属性服务程序服务程序24Microsoft Windows 2000/XP文件对象虚拟地址描述符数据区控制区域子区段原型页表项页框号数据库项文件对象区域对象页目录页表映像区控制区域(如果文件是一个执行的映像)区域对象指针下个
19、子区25Microsoft Windows 2000/XP建立过程打开文件,区域对象可以连接到已打开的磁盘文件打开文件,区域对象可以连接到已打开的磁盘文件(映射文件),或是已提交的内存(提供共享内存)。(映射文件),或是已提交的内存(提供共享内存)。可以调用可以调用Win32函数函数CreateFileMapping创建区域对象,创建区域对象,其参数包括映射到区域对象的文件句柄(或是其参数包括映射到区域对象的文件句柄(或是INVALID_HANDLE_VALUE表示页文件支持区域)。表示页文件支持区域)。如果区域有名字,其它进程可以用如果区域有名字,其它进程可以用OpenFileMapping
20、打开它。打开它。设备驱动程序也可以使用设备驱动程序也可以使用ZwOpenSection,ZwMapViewOfSection,和和ZwUnmapViewOfSection函函数操纵区域对象。数操纵区域对象。MapViewOfFile函数映射区域对象的一部分,并指定函数映射区域对象的一部分,并指定映射范围。映射范围。26Microsoft Windows 2000/XP堆函数缺省进程堆,通常是缺省进程堆,通常是1MB大小大小HeapCreate函数创建另外的私有堆,函数创建另外的私有堆,HeapDestroy删除。删除。串行化选项。串行化选项。27Microsoft Windows 2000/X
21、P系统内存分配非分页缓冲池非分页缓冲池 由系统虚拟地址组成,它们长期由系统虚拟地址组成,它们长期驻留在物理内存中,在任何时候都可以被访问到(从驻留在物理内存中,在任何时候都可以被访问到(从任何任何IRQLIRQL级和任何进程上下文),而不会发生页错误。级和任何进程上下文),而不会发生页错误。需要未分页缓冲池的一个原因是:页错误不能满足在需要未分页缓冲池的一个原因是:页错误不能满足在DPC/DPC/调度级或更高。调度级或更高。分页缓冲池分页缓冲池 是系统可以被分页和分出系统的空间是系统可以被分页和分出系统的空间中虚拟内存的一个区域。不必从中虚拟内存的一个区域。不必从DPC/DPC/调度级或更高一
22、调度级或更高一级访问内存的设备驱动程序可以使用分页缓冲池。它级访问内存的设备驱动程序可以使用分页缓冲池。它从任何进程上下文都是可访问的。从任何进程上下文都是可访问的。28Microsoft Windows 2000/XP系统有两种非分页缓冲池:一种在一般系统有两种非分页缓冲池:一种在一般情况下使用,另一种小型的(情况下使用,另一种小型的(4页)缓冲页)缓冲池在非分页缓冲池已满并且调用者不能池在非分页缓冲池已满并且调用者不能允许分配失败时,紧急使用。允许分配失败时,紧急使用。单处理机系统有三个分页缓冲池;多处单处理机系统有三个分页缓冲池;多处理机系统有五个。理机系统有五个。后备链表后备链表(Lo
23、ok-Aside Lists)。Ex29Microsoft Windows 2000/XP缺页处理无效的页表项无效的页表项页文件页文件请求零页请求零页转换转换未知未知原型页表项原型页表项30Microsoft Windows 2000/XPPFN页目录页目录原型页表原型页表物理存储器物理存储器页表页表有效-PFN n无效-指向原型PTE段结构有效-PFN 5无效-在页文件中PFN nPFN n页帧号数据页帧号数据库项库项PTE地址共享数量=131Microsoft Windows 2000/XP页面调入I/O向文件(页或映射文件)发出读操作来向文件(页或映射文件)发出读操作来解决缺页问题解决缺
24、页问题同步的同步的32Microsoft Windows 2000/XP问题同同一一进进程程中中的的另另一一线线程程,或或一一个个其其它它的的进进程程,都都可可能能由由于于一一个个相相同同的的页页面面导导致致缺缺页页错错误误。(称为(称为“冲突页错误冲突页错误”,将在下节中介绍)。,将在下节中介绍)。页页面面可可能能已已经经从从虚虚拟拟地地址址空空间间中中被被删删除除(并并重重新映射)。新映射)。页面的保护限制可能发生了变化。页面的保护限制可能发生了变化。错错误误可可能能是是由由一一个个原原型型页页表表项项引引发发的的,并并且且这这个个原原型型页页表表项项所所映映射射的的页页面面可可能能并并不
25、不在在工工作作集集中。中。33Microsoft Windows 2000/XP冲突页错误(collided page fault)页面调度程序检测页面调度程序检测等待操作等待操作I/O操作完成后,所有等待该事件的线程操作完成后,所有等待该事件的线程都会被唤醒都会被唤醒第一个获得页框号数据库锁的线程负责第一个获得页框号数据库锁的线程负责执行页面调入完成操作。执行页面调入完成操作。34Microsoft Windows 2000/XP页文件最多最多16个页文件个页文件以非压缩的形式被创建以非压缩的形式被创建35Microsoft Windows 2000/XP工作集进程工作集进程工作集系统工作集
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 航空航天大学 计算机系
限制150内