我知道 fork bomb 以及它如何引发连锁反应并一个接一个地创建子进程。但我想澄清一下“资源占用”的一般含义。是 RAM 还是硬盘耗尽,进而导致系统崩溃?详细解释会很有帮助。
谢谢
答案1
经典的 fork 炸弹,即以指数方式复制自身的进程,将消耗两种资源:CPU 和进程表。CPU 是因为每个进程都需要时间片来运行,而进程表是因为进程数量突然激增。
“资源占用”可以指任何计算资源。它不一定是 fork 炸弹。例如,如果您正在运行一个dd
程序,并且它占用了磁盘的所有 I/O 带宽,并且您的计算机由于高负载而变得难以忍受地缓慢,那么从技术上讲,您可以说这dd
是一个资源占用程序。对于任何试图占用 RAM(例如:“Chrome 是一个资源占用程序,它把 RAM 当早餐吃掉”)或磁盘空间或计算机上任何有限资源的程序,情况也是如此。
现在,最后:导致系统崩溃实际上只是非常罕见的情况。您的系统会变慢,并且在内存不足的情况下,OOM Killer(内存不足杀手)可能会造成混乱。然而,彻底崩溃确实是例外。