电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Windows虚拟内存管理VIP免费

Windows虚拟内存管理_第1页
1/31
Windows虚拟内存管理_第2页
2/31
Windows虚拟内存管理_第3页
3/31
基本概念【摘录】 每个进程都被赋予它自己的虚拟地址空间。对于 32 位进程来说,这个地址空间是 4GB,因为 32 位指针可以拥有从 0x000000000 至 0xFFFFFFFF 之间的任何一个值。这使得一个指针能够拥有4 294 967 296个值中的一个值,它覆盖了一个进程的4GB 虚拟空间的范围。这是相当大的一个范围。由于每个进程可以接收它自己的私有的地址空间,因此当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于所有其他进程的内存则隐藏着,并且不能被正在运行的线程访问。 注意在 Windows 2000 中,属于操作系统本身的内存也是隐藏的,正在运行的线程无法访问。这意味着线程常常不能访问操作系统的数据。Windows 98 中,属于操作系统的内存是不隐藏的,正在运行的线程可以访问。因此,正在运行的线程常常可以访问操作系统的数据,也可以破坏操作系统(从而有可能导致操作系统崩溃)。在 Windows 98 中,一个进程的线程不可能访问属于另一个进程的内存。 前面说过,每个进程有它自己的私有地址空间。进程A 可能有一个存放在它的地址空间中的数据结构,地址是 0x12345678,而进程B 则有一个完全不同的数据结构存放在它的地址空间中,地址是 0x12345678。当进程A 中运行的线程访问地址为 0x12345678 的内存时,这些线程访问的是进程A 的数据结构。当进程B 中运行的线程访问地址为 0x12345678 的内存时,这些线程访问的是进程B 的数据结构。进程A 中运行的线程不能访问进程B 的地址空间中的数据结构。反之亦然。 记住,这是个虚拟地址空间,不是物理地址空间。该地址空间只是内存地址的一个范围。在你能够成功地访问数据而不会出现违规访问之前,必须赋予物理存储器,或者将物理存储器映射到各个部分的地址空间。 每个进程的虚拟地址空间都要划分成各个分区。地址空间的分区是根据操作系统的基本实现方法来进行的。不同的Windows 内核,其分区也略有不同。 当进程被创建并被赋予它的地址空间时,该可用地址空间的主体是空闲的,即未分配的。若要使用该地址空间的各个部分,必须通过调用VirtualAlloc 函数来分配它里边的各个区域。对一个地址空间的区域进行分配的操作称为保留(reserving)。 每当你保留地址空间的一个区域时,系统要确保该区域从一个分配粒度的边界开始。对于不同的CPU 平台来说,分配粒度是各不相同的。但是,目前(x86、32 位 Alpha、64 位 Alpha和 IA-64)都使用64KB...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Windows虚拟内存管理

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部