网站大量收购闲置独家精品文档,联系QQ:2885784924

Windows03报告.ppt

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

马洪兵 清华大学电子工程系 hbma@tsinghua.edu.cn, Windows 的内存管理 Windows 的外存管理 实习2.内存管理问题 Windows的内存管理 内存管理器的组成部分 地址空间布局 地址转换机制 缺页处理 内存分配方式 工作集 物理内存管理 内存管理器的组成部分 一组执行体系统服务程序,用于虚拟内存的分配、回收和管理。大多数这些服务都是通过Win32 API 或内核态的设备驱动程序接口形式出现。 一个页面错误陷阱处理程序用于解决硬件检测到的内存管理异常,并代表进程将虚拟页面装入内存。 运行在六个不同的核心态系统线程上下文中的几个关键组件 内存管理器的组成部分 工作集管理器(MmWorkingSetManager) :当空闲内存低于某一界限时,便启动所有的内存管理策略,如:工作集的修整、老化和已修改页面的写入等。 进程/堆栈交换器(KeSwapProcessOrStack) :完成进程和内核线程堆栈的换入和换出操作。 已修改页面写入器(MiModifiedPageWriter):将修改链表上的“脏”页写回到适当的页文件。 内存管理器的组成部分 映射页面写入器(MiMappedPageWriter):将映射文件中脏页写回磁盘。 废弃段线程(MiDereferenceSegmentThread):负责系统高速缓存和页面文件的扩大和缩小。 零页线程(MmZeroPageThread):将空闲链表中的页面清零。 地址空间布局 地址空间布局 系统代码 包括操作系统映像、HAL和用于引导系统的设备驱动程序。 系统映射视图 用来映射Win32子系统可加载的核心态部分Win32k.sys,以及它使用的核心态图形驱动程序。 会话空间 用来映射一个用户的会话信息。 进程页表和页目录 描述虚拟地址映射的结构。 超空间 一个特殊的区域用来映射进程工作集链表,并为创建临时映射物理页面。 地址空间布局 系统工作集链表 描述系统工作集的工作集链表数据结构。 系统高速缓存 用来映射在系统高速缓存中打开的文件的虚拟空间。 分页缓冲池 可分页系统内存堆。 系统PTE 系统PTE缓冲池,用来映射系统页面。 非分页缓冲池 不可分页的系统内存堆。 地址空间布局 MmSystemRangeStart 系统空间的起始地址 MmSystemCacheStart MmSystemCacheEnd 系统高速缓存的起始、终止地址 MiSystemCacheStartExtra MiSystemCacheEndExtra 系统高速缓存扩展(或系统PTE扩展)的起始、终止地址 MmPagedPoolStart MmPagedPoolEnd 分页缓冲池的起始、终止地址 地址空间布局 MmNonPagedSystemStart 系统PTE的起始地址 MmNonPagedPoolStart MmNonPagedPoolEnd 非分页缓冲池的起始、终止地址 MmNonPagedPoolExpansionStart 非分页缓冲池扩展的起始地址 MmSystemCacheWorkingSetList 系统工作集列表 地址空间布局 每个进程有自己的用户地址空间(低2G),在用户地址空间中有,进程的环境变量、进程的参数、进程的堆(Heap)、进程载入的模组、进程PEB、线程的堆栈(Stack)、线程TEB 地址转换机制 地址转换机制 快表TLB 缺页处理 无效的页表项 页文件 所需的页驻留在一个页文件中,引发页面调入操作 请求零页 所需的页必须是零页面 缺页处理 无效的页表项 转换 所需页面在内存中的后备链表、修改链表或修改尚未写入链表 未知 页表项为零,或者页表不存在 页面调入I/O 向文件(页或映射文件)发出读操作来解决缺页问题 页面调入I/O是同步的 页文件 使磁盘空间看起来象内存一样 最多16个页文件 页文件以非压缩的形式被创建 内存分配方式 以页为单位的虚拟内存分配方式 函数(Virtualxxx) 内存映射文件 函数(CreateFileMapping, MapViewOfFile), 内存堆方法 (Heapxxx 和早期的接口Localxxx 和Globalxxx)。 区域对象(section object) 系统内存分配 非分页缓冲池 由系统虚拟地址组成,它们长期驻留在物理内存中,在任何时候都可以被访问到(从任何IRQL级和任何进程上下文),而不会发生页错误。 分页缓冲池 是系统可以被分页和换出的虚拟内存的一个区域。不从DPC/调度级或更高级访问内存的设备驱动程序可以使用分页缓冲池。 系统内存分配 系统有两种非分页缓冲池:一种在一般情况下使用,另一种小型的(4页)缓冲池在

文档评论(0)

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

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

1亿VIP精品文档

相关文档