为什么一个行为不端的程序会导致整个系统挂起?

为什么一个行为不端的程序会导致整个系统挂起?

我的电脑经常会内存不足,或者有一个非常繁重的脚本(比如机器学习训练或简单的数据库导入)导致整个系统挂起。我无法移动鼠标或与操作系统交互(除非通过魔法键)。

即使某些程序在执行疯狂的操作,系统难道不应该始终保持平稳吗?有点像浏览器中有一个行为不端的网站。

我知道这有点太笼统了,我只是想知道这是否应该发生/这是一个有意识的决定/一个困难的理论问题。

答案1

根据脚本所消耗的资源,这很可能是“正常”行为。您可以尝试将renice进程设置为较低的优先级,如果 IO 出现故障,请参见ionice

答案2

从设计(即有意识的决定)的角度来看,有四个原因可以解释为什么行为不端的程序会挂起整个系统。

  1. 否则,操作系统对硬件的要求就会过大,迫使用户购买不需要的额外硬件。

  2. 否则,操作系统本身就会太大。

  3. 否则,操作系统将会浪费大量资源。

  4. 否则,操作系统的能源使用效率就会很低。

推论:

  1. 在具有更快的处理器、更多 RAM、SSD 而不是 HDD 等硬件上运行时,Ubuntu 不会经常挂起。

  2. 一般来说,专为在新硬件上运行而设计的较新操作系统比专为与旧硬件的限制兼容而设计的旧操作系统挂起的情况要少。

相关内容