王雷北京航空航天大学计算机系.ppt
《王雷北京航空航天大学计算机系.ppt》由会员分享,可在线阅读,更多相关《王雷北京航空航天大学计算机系.ppt(96页珍藏版)》请在三一办公上搜索。
1、1,存储管理,王 雷北京航空航天大学计算机系,2,内容,Windows 2000/XP内存管理Windows 2000/XP外存管理Windows 2000/XP高速缓存管理,3,工具,NtNt资源包Platform SDKNT DDK,4,调试工具,CDB.exei386kd.exewindbg.exesoftice(),5,6,配置,配置宿主机调试环境双机串口通讯连接目标机的WINDOWS启动时加上/debug参数安装与目标机系统相匹配的Symbol文件,7,kd!processfields,Pcb:0 x0ExitStatus:0 x68LockEvent:0 x6cLockCount:
2、0 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 xc8,8,LastProtoPteFault:0 xf8DebugPort:0 xfcExceptionPor
3、t: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 x160PageDirectoryPte:0 x164L
4、astFaultCount:0 x168VadRoot:0 x170VadHint:0 x174CloneRoot:0 x178NumberOfPrivatePages:0 x17cNumberOfLockedPages:0 x180ForkWasSuccessful:0 x15eExitProcessCalled:0 x186CreateProcessReported:0 x187,SectionHandle:0 x188Peb:0 x18cSectionBaseAddress:0 x190QuotaBlock:0 x194LastThreadExitStatus:0 x198Working
5、SetWatch:0 x19cInheritedFromUniqueProcessId:0 x1a4GrantedAccess:0 x1a8,9,kd!process 0,PROCESS 80147120 Cid:0000 Peb:00000000 ParentCid:0000 DirBase:00030000 ObjectTable:80731e88 TableSize:254.Image:Idle VadRoot 0 Clone 0 Private 0.Modified 0.Locked 0.801472DC MutantState Locked OwningThread 0 Proces
6、s Lock Owned by Thread 0 Token e1000750 ElapsedTime 7:41:18.0524 UserTime 0:00:00.0000 KernelTime 9:34:32.0780 QuotaPoolUsagePagedPool 0 QuotaPoolUsageNonPagedPool 0 Working Set Sizes(now,min,max)(4,50,450)(16KB,200KB,1800KB)PeakWorkingSetSize 4 VirtualSize 0 Mb PeakVirtualSize 0 Mb PageFaultCount 1
7、 MemoryPriority BACKGROUND BasePriority 0 CommitCharge 0THREAD 80147320 Cid 0.0 Teb:00000000 Win32Thread:00000000 RUNNING,10,内存管理,组成部分地址空间的布局地址转换机制内存分配方式缺页处理工作集物理内存管理其他内存相关机制,11,组成部分,一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。大多数这些服务都是通过Win32 API 或内核态的设备驱动程序接口形式出现。一个转换无效和访问错误陷阱处理程序用于解决硬件监测到的内存管理异常,并代表进程将虚拟页面装入内存。六
8、个的关键组件,12,工作集管理器(16优先):当空闲内存低于某一界限时,便启动所有的内存管理策略,如:工作集的修整、老化和已修改页面的写入等。进程/堆栈交换程序(23优先):完成进程和内核线程堆栈的换入和换出操作。已修改页面写入器(17优先):将修改链表上的“脏”页写回到适当的页文件。,13,映射页面写入器(17优先):将映射文件中脏页写回磁盘。废弃段线程(18优先):负责系统高速缓存和页面文件的扩大和缩小。零页线程(0优先):将空闲链表中的页面清零。,14,内存布局,15,16,系统代码 包括操作系统映像、HAL和用于引导系统的设备驱动程序。系统映射视图 用来映射Win32子系统可加载的核心
9、态部分Win32k.sys,以及它使用的核心态图形驱动程序。会话空间 用来映射一个用户的会话信息。进程页表和页目录 描述虚拟地址映射的结构。超空间 一个特殊的区域用来映射进程工作集链表,并为创建临时映射物理页面。,17,系统工作集链表 描述系统工作集的工作集链表数据结构。系统高速缓存 用来映射在系统高速缓存中打开的文件的虚拟空间。分页缓冲池 可分页系统内存堆。系统页表项 系统PTE缓冲池,用来映射系统页面。非分页缓冲池 不可分页的系统内存堆。,18,地址变换过程,19,进程,20,快表TLB,21,内存分配方式,以页单位的虚拟内存函数(Virtualxxx),保留与提交内存映射文件函数(Cre
10、ateFileMapping,MapViewOfFile),堆函数(Heapxxx 和早期的接口Localxxx 和Globalxxx)。,22,虚拟地址描述符,23,内存映射文件,加载和执行.exe和dll文件,这可以节省应用程序启动所需的时间;访问磁盘上的数据文件,这可以减少文件I/O,并且不必对文件进行缓存;实现多个进程间的数据共享。,24,区域对象(section object),25,26,建立过程,打开文件,区域对象可以连接到已打开的磁盘文件(映射文件),或是已提交的内存(提供共享内存)。可以调用Win32函数CreateFileMapping创建区域对象,其参数包括映射到区域对象
11、的文件句柄(或是INVALID_HANDLE_VALUE表示页文件支持区域)。如果区域有名字,其它进程可以用OpenFileMapping打开它。设备驱动程序也可以使用ZwOpenSection,ZwMapViewOfSection,和ZwUnmapViewOfSection函数操纵区域对象。MapViewOfFile函数映射区域对象的一部分,并指定映射范围。,27,堆函数,缺省进程堆,通常是1MB大小HeapCreate函数创建另外的私有堆,HeapDestroy删除。串行化选项。,28,系统内存分配,非分页缓冲池 由系统虚拟地址组成,它们长期驻留在物理内存中,在任何时候都可以被访问到(从任
12、何IRQL级和任何进程上下文),而不会发生页错误。需要未分页缓冲池的一个原因是:页错误不能满足在DPC/调度级或更高。分页缓冲池 是系统可以被分页和分出系统的空间中虚拟内存的一个区域。不必从DPC/调度级或更高一级访问内存的设备驱动程序可以使用分页缓冲池。它从任何进程上下文都是可访问的。,29,系统有两种非分页缓冲池:一种在一般情况下使用,另一种小型的(4页)缓冲池在非分页缓冲池已满并且调用者不能允许分配失败时,紧急使用。单处理机系统有三个分页缓冲池;多处理机系统有五个。后备链表(Look-Aside Lists)。Ex,30,缺页处理,无效的页表项页文件请求零页转换未知原型页表项,31,32
13、,页面调入I/O,向文件(页或映射文件)发出读操作来解决缺页问题同步的,33,问题,同一进程中的另一线程,或一个其它的进程,都可能由于一个相同的页面导致缺页错误。(称为“冲突页错误”,将在下节中介绍)。页面可能已经从虚拟地址空间中被删除(并重新映射)。页面的保护限制可能发生了变化。错误可能是由一个原型页表项引发的,并且这个原型页表项所映射的页面可能并不在工作集中。,34,冲突页错误(collided page fault),页面调度程序检测等待操作I/O操作完成后,所有等待该事件的线程都会被唤醒第一个获得页框号数据库锁的线程负责执行页面调入完成操作。,35,页文件,最多16个页文件以非压缩的形
14、式被创建,36,工作集,进程工作集系统工作集,37,系统工作集,系统高速缓存页面分页缓冲池Ntoskrnl.exe中可分页的代码和数据设备驱动程序中可分页的代码和数据系统映射视图(部分映射在0 xA0000000处,如Win32k.sys),38,取页策略:内存管理器利用请求式页面调度算法以及簇方式将页面装入内存置页策略:选择页框应使CPU内存高速缓存不必要的震荡最小换页策略在多处理器系统中,Windows 2000/XP采用了局部先进先出置换策略。而在单处理器系统中,Windows 2000/XP的实现更接近于最近最少使用策略(LRU)(称为“轮转算法”,用于大多数版本的UNIX)。,39,
15、物理内存管理,活动(又称有效)过渡(Transition)后备(stand by)修改 修改不写入 空闲 零初始化(zeroed)坏,40,41,物理内存管理,42,43,锁内存,设备驱动程序可以调用核心态函数MmProbeAndLockPages,MmLock PagableCodeSection,MmLockPagableDataSection,或者 MmLockPagableSection ByHandle。Win32应用程序可以调用VirtualLock函数锁住进程工作集中的页面。,44,内存保护机制,所有系统范围内核心态组件使用的数据结构和内存缓冲池只能在核心态下访问。每个进程有一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 航空航天大学 计算机系

链接地址:https://www.31ppt.com/p-5446108.html