Windows AWE API 内存分配和普通内存分配的不同点

简介:

以下观点可能和实际情况有点不符合,因为本人没有阅读过微软的内部文档,也找不到其他资料

只能根据现有的资料,推测,希望懂的人或者牛人能够指点。指出其中的问题,欢迎拍砖

普通内存分配方式:

  图的左边,是普通内存分配方式。

  当程序中的虚拟内存提交时,程序会向系统申请内存,系统会分配一个PFN,一个PFN包含了很多信息,主要是代表内存页,有时候也可以把它看成内存页,这样比较容易理解

  PTE是如果从VAS 也就是 虚拟内存,提交到物理内存时,PTE会记录映射的信息。

  普通分配的基本流程可能是这样。申请到PFN 后,PTE 会映射到相应的PFN,并把VAS中的页读到PFN对应的物理内存页中。

  这个感觉比较简单

AWE内存分配:

  对SQL Server 了解比较深的朋友会知道,SQL Server 启用了AWE之后,分配的内存将会被锁住,也就是 locked page,在程序停止前是无法被释放的。

  当程序想系统以AWE方式请求内存时,系统会从PFN Database 也就是一个管理 PFN 的地方,申请出一块内存,并把 PFN 对应的物理内存映射到虚拟内存中。

     也就是虚拟内存通过指针指向了物理内存。请看图:

            

                                                 

    在PFN映射到虚拟内存的时候,PTE会被分配,与PFN绑定加锁。但是PFN的内存已经映射到了虚拟内存中,PFN会把指向内存的指针指到PTE上。

    所以,PTE无法探测出有多少内存被AWE分配到了程序中。因此也无法对AWE分配的内存做页换出,造成Locked Page。




    本文转自 Fanr_Zh 博客园博客,原文链接:http://www.cnblogs.com/Amaranthus/archive/2011/12/09/2281424.html,如需转载请自行联系原作者






相关文章
|
6月前
|
存储 机器学习/深度学习 算法
内存学习(六):引导内存分配器(初始化)
内存学习(六):引导内存分配器(初始化)
110 0
|
6月前
|
存储 算法 大数据
内存原理 | 内存分配 | 内存对齐
内存原理 | 内存分配 | 内存对齐
|
6月前
|
存储 算法 关系型数据库
实时计算 Flink版产品使用合集之在Flink Stream API中,可以在任务启动时初始化一些静态的参数并将其存储在内存中吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
127 4
|
4月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
16天前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
39 11
|
2月前
|
网络协议 API Windows
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
|
1月前
|
弹性计算 关系型数据库 数据安全/隐私保护
阿里云国际版如何配置Windows服务器的虚拟内存
阿里云国际版如何配置Windows服务器的虚拟内存
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
46 0
|
1月前
|
程序员 Windows
程序员必备文件搜索工具 Everything 带安装包!!! 比windows自带的文件搜索快几百倍!!! 超级好用的文件搜索工具,仅几兆,不占内存,打开即用
文章推荐了程序员必备的文件搜索工具Everything,并提供了安装包下载链接,强调其比Windows自带搜索快且占用内存少。
45 0
|
2月前
|
监控 Java 大数据
【Java内存管理新突破】JDK 22:细粒度内存管理API,精准控制每一块内存!
【9月更文挑战第9天】虽然目前JDK 22的确切内容尚未公布,但我们可以根据Java语言的发展趋势和社区的需求,预测细粒度内存管理API可能成为未来Java内存管理领域的新突破。这套API将为开发者提供前所未有的内存控制能力,助力Java应用在更多领域发挥更大作用。我们期待JDK 22的发布,期待Java语言在内存管理领域的持续创新和发展。
下一篇
无影云桌面