win32操作系统最多可以使用多少内存?

HeBanBei 2015-10-19 04:49:43
看书上说,一个进程的地址空间是4G。
2G给系统用,2G给用户程序用。

但是书上又说了下面一段话,其中提到的 64G, 128G又是怎么回事呢?

------------------------------------------
需要注意的是,内核所需要的代码和数据原来已经被紧紧地压缩到2GB的分区内,因此,将内核的地址空间减少到2 GB以下将限制系统所能创建的线程、栈及其他资源的数量。此外,在使用大用户模式分区时,系统最多只能使用64 GB内存,而如果使用默认的2 GB用户模式分区,系统最多可以使用128 GB内存 。
------------------------------------------

...全文
520 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2015-11-23
  • 打赏
  • 举报
回复
4G是用户模式程序,也就是通常的进程地址空间。 原因是MS偷懒,不想搞得这么复杂(其他系统估计也一样)。 至于操作系统,可用地址空间是T级别的,似乎是64T,还是更多。 操作系统可用内存,其实和实际物理内存,主板布局,芯片组,CPU地址线等等都有关系 64G,或者128G是微软针对某种应用的吧,例如服务器。 当然64Bits系统,即便用户程序,应该也可以突破4G的限制了才对。
谁学逆向工程 2015-10-23
  • 打赏
  • 举报
回复
引用 10 楼 DelphiGuy 的回复:
从某些型号的PentiumPro开始,已经具有36-bit或者更多的地址线,可以支持超过4GB的内存(当然要能使用还需要芯片组和操作系统支持),扩展的方法有PSE(Page Size Extension)、PAE(Physical Address Extension)。
好神奇,我以为32位的下一个版本就是64位的了
yangyunzhao 2015-10-22
  • 打赏
  • 举报
回复
谁说的啊,桌面用户系统确实如此。 实际不见得,32位只是限制了单个进程最大4G而已。并没有限制操作系统。实际上很多32位的服务器系统就支持超过4GB的内存!!
cdcjk 2015-10-22
  • 打赏
  • 举报
回复
64G 和 128G 是针对的 64 位系统来说的吧 64 位的 Win7 支持的内存就是 128G
  • 打赏
  • 举报
回复
引用 9 楼 xiaoyuanyuan2009 的回复:
32位不是4G吗,咋又出来那么多G
从某些型号的PentiumPro开始,已经具有36-bit或者更多的地址线,可以支持超过4GB的内存(当然要能使用还需要芯片组和操作系统支持),扩展的方法有PSE(Page Size Extension)、PAE(Physical Address Extension)。
谁学逆向工程 2015-10-22
  • 打赏
  • 举报
回复
32位不是4G吗,咋又出来那么多G
  • 打赏
  • 举报
回复
引用 6 楼 mLee79 的回复:
不同的进程映射不同的 4G 空间而已, 32位系统支持 128G 内存有啥奇怪的, 32 位的服务器版 Windows, 32位的 Linux 一贯都支持超过 4G 的内存, 在 奔4之前的 CPU 如果支持 PAE, 地址线是 36位的, 可以用 64G 的内存, 在 P4 之后的机器都有 40位的 地址线, 支持个 128G 的内存还不简单. 就同一个进程也可以通过特别的 API 操作超过 4G 的内存 ..
这个正解。那位喷“书上说的貌似自己都不知道自己在说什么”的,纯属棒槌,
www_adintr_com 2015-10-20
  • 打赏
  • 举报
回复
引用 楼主 HeBanBei 的回复:
看书上说,一个进程的地址空间是4G。 2G给系统用,2G给用户程序用。 但是书上又说了下面一段话,其中提到的 64G, 128G又是怎么回事呢? ------------------------------------------ 需要注意的是,内核所需要的代码和数据原来已经被紧紧地压缩到2GB的分区内,因此,将内核的地址空间减少到2 GB以下将限制系统所能创建的线程、栈及其他资源的数量。此外,在使用大用户模式分区时,系统最多只能使用64 GB内存,而如果使用默认的2 GB用户模式分区,系统最多可以使用128 GB内存 。 ------------------------------------------
64G 和 128G 是针对的 64 位系统来说的吧 64 位的 Win7 支持的内存就是 128G
赵4老师 2015-10-20
  • 打赏
  • 举报
回复
硬盘空间?
paschen 2015-10-20
  • 打赏
  • 举报
回复
对于32位程序,内存地址是用四节整数表示,所以最大只能表示4G内存空间
mLee79 2015-10-20
  • 打赏
  • 举报
回复
不同的进程映射不同的 4G 空间而已, 32位系统支持 128G 内存有啥奇怪的, 32 位的服务器版 Windows, 32位的 Linux 一贯都支持超过 4G 的内存, 在 奔4之前的 CPU 如果支持 PAE, 地址线是 36位的, 可以用 64G 的内存, 在 P4 之后的机器都有 40位的 地址线, 支持个 128G 的内存还不简单. 就同一个进程也可以通过特别的 API 操作超过 4G 的内存 ..
HeBanBei 2015-10-19
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
是操作系统啊,2G 是单个进程
那64GB , 128GB是怎么回事?
leetoo_1977 2015-10-19
  • 打赏
  • 举报
回复
书上说的貌似自己都不知道自己在说什么,过些天我会专门讲一下地址空间的问题,请关注: http://bbs.csdn.net/topics/391844682?page=1#post-400483433
  • 打赏
  • 举报
回复
是操作系统啊,2G 是单个进程

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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