虚拟地址空间和物理存储

【勇芳软件工作室】汉化HomePreviousNext

每个进程的虚拟地址空间远大于所有进程可用的总物理内存,随机存取存储器(RAM)。为了增加物理存储的大小,内核使用磁盘进行额外的存储。所有执行进程可用的总存储空间是物理内存,RAM和可用于【页面文件】(可用于增加物理存储量的磁盘文件)的可用空间的总和。每个进程的物理存储和虚拟(逻辑)地址空间被组织为【网页】,内存单元,其大小取决于主机。例如,在x86计算机上,主机页大小为4千字节(K)。

为了最大化其管理内存的灵活性,内核可以将物理内存的页面移动到磁盘上的页面文件。当物理内存中移动页面时,内核会更新受影响进程的页面映射。当内核需要物理内存空间时,它将物理内存中最少使用的页面移动到页面文件。内核操作物理内存对于只在虚拟地址空间中运行的应用程序是完全透明的。

进程的虚拟地址空间的页面可以处于以下状态之一。

描述
自由目前无法访问免费页面,但可以使用它来保留或保留。
保留的保留页面是进程的虚拟地址空间的一个块,已被预留以备将来使用。该进程无法访问保留页面,并且没有与之关联的物理存储。保留页面保留随后不能被其他分配操作(即通过诸如的mallocLocalAlloc等功能)的功能使用的一系列虚拟地址)。一个进程可以使用VirtualAlloc函数来保留其地址空间的页面,并稍后提交保留的页面。它可以使用VirtualFree函数来释放它们。
承诺一个承诺的页面是一个物理存储(在内存或磁盘上)分配的页面。它可以被保护以允许访问或只读访问,或者可以具有读写访问权限。一个进程可以使用VirtualAlloc函数来分配提交的页面。GlobalAllocLocalAlloc函数分配具有读写访问权限的已提交页。VirtualAlloc分配的承诺页面可以通过VirtualFree功能进行分解,该函数会释放页面的存储空间,并将页面的状态更改为预留。