我可以安装16位64位Windows 7来同时运行更多32位应用程序吗?


0

在工作中,我可以选择安装16GB的64位Windows 7。我能想到的最好的好处是Windows 7 64位可以利用超过4GB的内存。我的一位同事说,即使我安装了64位Windows 7,32位应用程序也无法满足所有内存的需求。这让我很困惑,并且不确定这意味着只有64位应用程序可以在4GB到16GB之间的内存空间中运行。如果我使用每个1GB运行10个32位应用程序,我应该能够在没有分页的情况下执行此操作吗?


你的同事是正确的32位applocation不能使用超过4GB的内存。您可以任意方式使用16GB内存。
Ramhound

究竟怎么样?这是你问题的答案。 64位应用程序可以使用1GB或16GB
Ramhound

好的,这更清楚了。结合你的两条评论对我来说更有意义。
Sun

为什么下来投票?这是一个很好的问题。
psusi

Answers:


0

每个程序都在其自己的虚拟内存空间中运行。当程序从OS请求内存时,它们以1MB的块分配。程序将此内存视为一个大的,连续的内存块(即所谓的“平面内存模型”)。这与旧的16位模型“分段存储器”模型不同,其中两个寄存器将组合成单个20位或32位存储器地址,具体取决于存储器控制器的当前操作模式。

每个32位程序将限制为2GB的总可用内存;从0x20000000开始的内存区域用于32位应用程序中的DLL。确实,a 单个人 32位应用程序将无法访问所有16GB内存,因为它并非全部可寻址。但是,每个程序都在其虚拟内存块底部附近(接近0x00000000)启动,并且虚拟内存管理器将其偏移到RAM中的实际物理位置,因此从这个意义上讲,32位程序可以驻留在任何位置。物理内存。从概念上讲,这意味着你可以用32位程序填充所有16GB的RAM。

32位和64位应用程序可以并排运行,并且位于RAM中的任何位置。请注意,在内存耗尽之前发生分页,因此,如果没有发生分页,您仍然不可能运行16个1GB RAM应用程序。系统尝试保留一些物理内存,并将其用作磁盘读写的缓存。

请注意,即使是32位操作系统 能够 访问超过4GB的内存,虽然每个应用程序仍然限制为4GB。这是因为称为PAE(物理地址扩展)的相对古老的技术。作为授权问题,32位Windows不允许您访问2GB / 4GB以上的内存,但32位版本的Linux可以在16GB系统上运行,并且可以完全访问已安装的内存。某些32位版本的Windows Server也可以访问超过4GB的内存:“Windows Server 2008 Datacenter”可以在32位处理器上使用高达64GB的RAM。


您声明32位应用程序只能访问2GB,但情况并非如此。 Linux与作者的问题有什么关系?
Ramhound

@Ramhound什么是真的呢?
Sun

Windows中的32位应用程序只有2GB可用,因为它可以访问的另外2GB是为操作系统保留的。仅提到Linux是为了说明32位操作系统的内存限制。
phyrfox

1
在64位操作上,32位进程可以使用高达4GB而不是2GB
Ramhound

问题与32位操作系统无关
Ramhound
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.