如果我用完了虚拟内存会怎样?

Pac*_*ier 2 windows-7 windows-vista windows-xp

大家好,有时我会运行 photoshop 以及大量 Chrome 标签和其他几个程序,但我的内存看起来非常接近 7.99 GB 的虚拟内存。

我想知道当程序分配的内存多于我的虚拟内存允许时会发生什么?这是否意味着我的电脑会简单地蓝屏?

或者我可以保证即使需要额外内存的程序会崩溃,操作系统也会稳定(没有蓝屏)?

use*_*686 7

根据操作系统、其配置以及可能的其他情况,将发生以下情况之一:

  • 操作系统将增加分页文件的大小并将未使用的进程移动到它。(Windows 会这样做;Linux 不能,因为出于历史原因,它通常使用固定大小的分区。)
  • 操作系统将开始杀死其他进程以释放内存。(Linux 或没有页面文件的 Windows,请执行此操作。)
  • 操作系统将终止违规进程。
  • 内存分配只会失败,导致进程迟早崩溃(不确定是否有任何操作系统的行为是这样的)。

简单地耗尽内存永远不会导致蓝屏死机,这仅适用于不可恢复的情况。

  • 我认为 Windows 实际上的行为类似于第 4 点,即内存分配调用可能会失败,但不必立即终止程序。Windows 保留了一个非分页池供内核使用,因此通常不会因为内存不足而崩溃。然而,一些驱动程序可以分配分页内存,如果它们写得不好,可能会在内核模式下导致触发 BSoD 的异常。但是,这可以自动检查,我敢打赌 Microsoft 在驱动程序认证期间会检查它。 (2认同)