- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 4 Memory Management 4.2内存管理体系结构 Windows 支持不同硬件结构,内存管理体系结构在源代码的不同文件中,比如x86在i386.h中,AMD64在amd64.h中。。 第二层内存管理专用接口都包含在mi.h中,其中包括了内存管理所必须的私有数据结构和函数 第三层是公共内存管理接口,操作系统的其他部分都是通过这些公共的接口来调用内存管理提供的服务。在这一层已经完全看不到任何硬件结构有关的信息,它们完全是独立于硬件平台的。 4.2内存管理体系结构 在底层的各个文件的内容是:地址空间布局的信息、页表项PTE的结构、页面大小、地址变换的级数、物理地址位数、对齐方式等。 第二层包括了内存管理所必须的私有数据结构和函数。 第三层是公共内存管理接口。 4.3工作集与页面机制 工作集:工作集描述了进程或系统拥有的驻留页面,而“页框号PFN数据库”描述了物理内存中各个页面的状态。 页面一定处于下表的8种状态之一。 活动(有效)。 过渡(transition)。 后备(stand by)。 修改。 修改不写入。 空闲。 零初始化。 坏。 其中,零初始化、空闲、后备、坏、修改、修改不写入组成了链表(6种链表),以便虚拟内存管理器可以很快定位某特定类型的页面。 4.4内存分配与回收 分配粒度与页面大小 每当你保留地址空间的一个区域时,系统要确保该区域从一个分配粒度的边界开始。 当你保留地址空间的一个区域时,系统还要确保该区域的大小是系统的页面大小的倍数。 系统也需要创建一个线程环境块(TEB),以便管理进程中当前存在的所有线程。用于这些TEB的区域将根据进程中的线程被创建和撤消等情况而保留和释放。虽然系统规定,要求保留的地址空间区域均从分配粒度边界(目前所有平台上均为64KB)开始,但是系统本身并不受这个规定的限制。为你的进程的PEB和TEB保留的地址空间区域很可能不是从64 KB这个边界开始的。不过这些保留区域仍然必须是CPU的页面大小的倍数。 4.6内存保护机制 Windows提供四种基本的方式来提供保护。 1、所有系统范围内核心态组件使用的数据结构和内存缓冲池只能在核心态下访问,用户态线程不能访问这些页面。如果他们试图这样做,硬件会产生一个错误信息,随后内存管理器向线程报告一个访问冲突。 2、每个进程有一个独立、私有的地址空间,禁止其他进程的线程访问。 3、除了提供虚拟地址到物理地址转换的隐含保护外,所有Windows Server 2003支持的处理机还提供了一些硬件内存保护措施,如读/写或只读等。 4、共享内存区域对象具有标准的Windows Server 2003存取控制表(ACL),当进程试图打开这些对象时会检查ACL表,这样对共享内存的访问也限制在具有适当权限的进程当中。 Chapter 4 Memory Management Experiment 4.1内存管理实验概述 函数调用过程 一个系统调用模块图。 4.2内存分配与回收验证实验 NTSTATUS MiFindEmptyAddressRangeDownTree函数检查进程的VAD,从而定位一个特定大小的未使用区域,并返回这个区域的初始地址。函数从高地址到低地址检查确保起始地址大于特定地址。 当函数MiFindEmptyAddressRangeDownTree返回STATUS_SUCCESS时,即成功找到未被占用的地址区域,完成这个区域的虚拟地址描述符的初始化,并将该区域的VAD插入到系统维护的用户地址空间的VAD树中。做到这一步也就是完成了内存的保留。 Vad-StartingVpn = MI_VA_TO_VPN (StartingAddress);Vad-EndingVpn = MI_VA_TO_VPN (EndingAddress);Status = MiInsertVadCharges (Vad, Process); 页面提交需要将物理内存映射到VAD树中。下面的代码完成物理内存到VAD的映射。 PhysicalView-StartingVpn = Vad-StartingVpn; PhysicalView-EndingVpn = Vad-EndingVpn; 内存分配工作完成。 4.2内存分配与回收验证实验 进行VirtualAlloc的验证实验 编写VirtualAllocation.exe(代码略) 在wrk中用windbg调试 1、user mode 4.2内存分配与回收验证实验 2、kernel mode 4.2内存分配与回收验证实验 2、kernel mode 4.2内存分配与回收验证实验 HeapAlloc与HeapFree函数调用分析 用同样的方法对堆分配和堆回收进行验证
您可能关注的文档
- 成都理工大学文法学院经济法学课件 第二章.ppt
- 成都理工大学文法学院经济法学课件 第九章.ppt
- 成都理工大学文法学院经济法学课件 第六章.ppt
- 成都理工大学文法学院经济法学课件 第七章.ppt
- 成都理工大学文法学院经济法学课件 第三章.ppt
- 成都理工大学文法学院经济法学课件 第十二章.ppt
- 成都理工大学文法学院经济法学课件 第十六章.ppt
- 成都理工大学文法学院经济法学课件 第十三章.ppt
- 成都理工大学文法学院经济法学课件 第十四章.ppt
- 成都理工大学文法学院经济法学课件 第十五章.ppt
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
最近下载
- 大楼维修改造工程投标方案(技术标367页).docx
- 高频电刀的使用(参考).ppt
- AQT3034—2022化工过程安全管理导则.pdf VIP
- 省考公务员-黑龙江-行政职业能力测验-第一章数量关系-第四节行程问题-.docx VIP
- DB23_T(1621.10-1621.14)-2015:黑龙江省建设工程施工操作技术规程(三).pdf VIP
- 整体法-隔离法-动态平衡题型练.doc VIP
- 2021年全国乙卷(生物)高考真题.pdf VIP
- 论中小企业会计核算重要性-来源:财会学习(第2020027期)-《中国建材报》社、中国会计学会建材分会.pdf VIP
- 2022年高考真题全国乙卷(文综历史)真题(有答案).pdf VIP
- 浅谈机务维修作风建设 蔡恒志.doc VIP
文档评论(0)