进程与虚拟地址空间

Microsues 2011-07-04 11:17:46
以32位windows为例,OS为每个进程提供4GB的虚拟地址空间,那就说如果某一时刻有N个进程,OS需要在磁盘上分出N*4GB作为虚拟地址空间。
我理解的对吗?
...全文
108 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdudubing 2011-07-04
  • 打赏
  • 举报
回复
4G的虚拟内存不是说实际上分配给程序4G的空间,32位的CPU可寻址2G空间,实际的内存也只有2G;那只是个为了内存管理而增加的一个概念,计算机内部会自动进行处理的
至善者善之敌 2011-07-04
  • 打赏
  • 举报
回复
RAM是物理内存,大小是你机器的内存条的大小,256M/512M
虚拟内存是操作系统假想的内存,并不是实际存在的内存,操作系统
通过对RAM的映射类模拟更大的虚拟内存,比如段页式方法。
32位系统的虚拟地址空间范围从0x00000000~0xffffffff( 4GB)

页文件是和命中率相关的概念,操作系统对内存的分配,是按页来
分配的,如果程序要访问的数据不在内存(指RAM)中,这叫没有命中,
那么就要采用一定的算法交换要访问的页,把一个无效的页写到
磁盘上,并从磁盘上把要访问的数据调到内存中。
pengzhixi 2011-07-04
  • 打赏
  • 举报
回复
额 4G空间只是一个最大的寻址空间,而不是说一定要从内存或者硬盘上分配出这么多实际的物理空间。
bdmh 2011-07-04
  • 打赏
  • 举报
回复
你的理解完全错误,是虚拟内存,不是物理内存,可以去看看《windows核心编程》
赵4老师 2011-07-04
  • 打赏
  • 举报
回复
《深入解析Windows操作系统-Windows Internals》
就想叫yoko 2011-07-04
  • 打赏
  • 举报
回复
个人认为这里这个4GB指的是最大寻址 即最大分配吧

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧