小编Sew*_*cca的帖子

为什么 Windows 10 允许无限制地消耗所有内存?

我用 g++ 编译的 C++ 编写了最愚蠢的程序来测试我的操作系统:

int main()
{
    while (true)
    {
        new int;
    }
}
Run Code Online (Sandbox Code Playgroud)

出于纯粹的好奇,我想了解 Windows 将如何响应程序,无情地分配内存。我预计它会在某个时候崩溃,或者 Windows 会进行干预,并释放所有内存。令我惊讶的是,Windows 并没有让它运行,导致整个 PC 无法使用。任务管理器仍然可以显示一些更改,而我的 32 GB RAM 已完全使用,直到它冻结。那么,什么都行不通。我仍然可以使用鼠标,我可以每 20 或 30 秒左右移动一次鼠标,持续一帧。CTRL-C 不起作用,但我不知道它是否识别出我之前从任务管理器切换到命令行。当我注意到我的 SSD 被大量使用时(LED 一直亮着),我决定什么最适合我的硬盘:硬重置...这就引出了一个问题:

为什么Windows 10允许程序无限期地消耗所有资源并让它使PC完全无法使用?

人们会认为一个编写良好的操作系统 - Linux 会如何响应?- 将采取一些安全措施来防止程序消耗所有资源。我认识到可能存在完全有必要使用所有可用资源的用法,但它是否应该仅通过简单的malloc(或在本例中new)可用?或者只是我的系统有问题?

注意:我强烈建议不要执行上面的程序,因为它可能会导致严重崩溃。

memory security memory-management windows-10

-1
推荐指数
1
解决办法
462
查看次数

标签 统计

memory ×1

memory-management ×1

security ×1

windows-10 ×1