Answers:
当操作系统内存不足且没有交换空间时,它将丢弃干净页面。它不能丢弃脏页,因为它必须先将它们写到某处。如果没有足够的RAM来容纳工作集,这将导致抖动和性能下降。这是您真正想要交换的主要原因之一,因此操作系统可以更好地决定驱逐哪些页面。
如果不进行交换,则系统将在没有更多要清除的干净页面时立即用完虚拟内存(严格来说是RAM + swap)。然后它将不得不终止进程。
用完RAM是完全正常的。这只是使用 RAM 的不利因素。同样,将RAM用尽也可以称为“浪费RAM”。一旦所有RAM使用完毕,操作系统就可以明智地决定要在RAM中保留什么以及不保留什么。没有任何交换,它的选择就更少了。
无论是否进行交换,当逐出页面不足时,操作系统都会从拒绝允许需要内存(例如mmap
和fork
)的操作成功开始。但是,有时这还不够,必须杀死进程。