分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)相关的知识,希望对你有一定的参考价值。

分配粒度和内存页面大小

x86处理器平台的分配粒度是64K,32位CPU的内存页面大小是4K,64位是8K,保留内存地址空间总是要和分配粒度对齐。一个分配粒度里包含16个内存页面。

这是个概念,具体不用自己操心,比如用VirtualAllocEx等函数,给lpAddress参数NULL系统就会自动找一个地方分配你要的内存空间。如果需要自己管理这个就累了......

一个分配粒度是64K,这就是为什么Null指针区域和64K进入区域都是 64K的原因,刚好就是一个分配粒度。
一个内存页是4K,这就是为什么PE文件中的section都是0x1000对齐.
硬盘扇区大小是512字节,这就是为什么PE文件默认文件对齐是0x200.

这些数字绝对不是心血来潮设定出来的,而是综合了硬件结构和操作系统架构设定的。

http://blog.csdn.net/mysouling/article/details/8676198

以上是关于分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)的主要内容,如果未能解决你的问题,请参考以下文章

windows 地址空间分配

OD-内存池分配(python)

华为机试真题 C++ 实现内存资源分配

华为OD机试 - 内存池(JavaScript) | 机试题+算法思路+考点+代码解析 2023

华为OD机试真题Python实现内存池真题+解题思路+代码(2022&2023)

AssetBundle粒度与分配策略