avl*_*den 4 windows virtual-memory
Linux OS:es 通常允许过度使用内存。例如一个进程可以分配 100GB 的内存,即使机器只有 8GB 的物理内存并且没有交换。
只要没有实际使用所有分配的内存,该过程就会工作。如果程序试图全部使用它,OOM-killer 将杀死进程以释放内存。
这在 Windows 中是如何工作的?Windows 是否会拒绝为进程提供虚拟内存,除非它可以保证该内存可以由实际内存(物理 RAM 或交换)支持?
回答我自己的问题,其他人没有。
Windows 似乎不会过度使用内存。与Linux相比,这实际上是一个很大的不同。
Windows 将允许程序分配比机器上的 RAM 更多的(虚拟)内存,但前提是有足够的可用磁盘空间能够在必要时支持程序通过磁盘请求的虚拟内存。