内存保护¶
当内存由游戏(或任何程序)分配时,它被放置在一个页面中。在 x86 Windows 中,页面是存储数据的 4,096 字节块。由于所有内存都必须在页面内,最小分配单位是 4,096 字节。操作系统可以把小于 4,096 字节的内存块作为具有足够未提交空间的现有页面的子集、新分配的页面,或跨两个具有相同属性的连续页面来放置。
4,096 字节或更大的内存块跨越 n 个页面,其中 n = 内存大小 / 4,096。操作系统在分配内存时通常会在现有页面中寻找空间,但必要时会按需分配新页面。
注 大块也可能跨越 n + 1 个页面,因为不保证块从页面开头开始。
理解内存页面重要的是每个页面都有一组特定属性。大多数属性在用户模式下是透明的,但有一个在处理内存时你应该格外注意:保护。