可以在Windows 8.1上分配给进程的最大内存

时间:2014-08-17 14:53:23

标签: memory-management process operating-system windows-8.1

我是一个更新鲜的人,在微软的招聘过程中被问到这个问题。

我在某处读到,分配给进程的最大内存可以是可用的最大物理内存。那么如果RAM是4GB,那就是答案吗?如果是,那怎么样?因为RAM的某些部分总是被操作系统占用,对吧?如果不是,那么你能否告诉我答案以及它真正依赖的因素是什么?

1 个答案:

答案 0 :(得分:3)

首先,您的问题的基础与Virtual Memory完全相关,Chris O已经指出了这一点!

现在,一步一步地继续你的问题: -

  

我在某处读到了分配给进程的最大内存   是可用的最大物理内存。如果RAM是,那就是   4GB,这就是答案吗?

不,您的进程可以使用的最大内存可以取决于分配的虚拟内存或swap size。交换内存通常占用物理内存的两倍,根据要求,它总是可以更多或更少!

此外,PAE(物理地址扩展)允许分配更多内存。 PAE允许32位操作系统使用更多RAM,即更多物理内存。这与32位操作系统的4GB虚拟地址空间限制没有任何关系。

32位操作系统使用32位虚拟地址。这在任何时候都限制为4GB的可寻址虚拟内存。如果32位操作系统也使用32位物理地址,则它也限制为4GB的物理内存。 PAE允许32位操作系统使用36位物理地址,这将限制提高到64GB。

接下来,您提到的这一点对atomic processes有效,而at least it must have this much of memory to execute this process无法进一步细分为线程或者So.我怀疑很少会遇到原子过程大小超过物理记忆大小的情况......

  

如果是,那怎么办?因为RAM的某些部分总是被占用   操作系统,对吧?

不,不是我上面已经提到过的!

  

如果不是,那么你能告诉我答案吗?它是什么因素   真的取决于?

先前未定义进程的内存要求。但是,您可能已经听说过许多程序推荐Virtual memory。这是流程的最低要求,否则流程甚至无法正常运行!因为它必须有合适的物理内存来处理这些事件!接下来,每当我们谈论{{1}}时,交换一词就会出现!当前未运行的所有进程都被发送到磁盘,并且要执行的进程被发送到物理内存以供执行。因此,通过连续交换请求并执行多个进程!

主存中维护的其他一些连续过程是: -

  1. 系统进程或守护程序

  2. 缓存内存或缓存维护