在我的计算机上安装了Ubuntu,我可以通过运行一个使用大量内存的简单程序来冻结整个GUI。之后,我甚至无法使用GUI来停止或暂停有问题的程序。
如何配置我的操作系统,以免发生此问题?
在Android,Windows 10,Mac或iOS中是否存在类似的问题?
这是C ++程序。
#define L 256*1024*1024
int main()
{
while(1)
{
char *c=new char[L];
for(long i=0;i<L;i++)
c[i]='a';
}
return 0;
}
编辑:此程序也会导致Windows 8.1出现问题。甚至Alt-Ctrl-Del都不起作用。
答案 0 :(得分:1)
我相信你正在寻找的进程限制(由bash中的ulimit
命令控制)。您可以使用ulimit -v
设置进程可以分配的最大虚拟内存量,参数为KB大小。例如,运行:
ulimit -v 100000
在运行程序之前应该在它耗尽系统内存(see Ubuntu page for more information)之前将其终止。请注意,限制是继承的,即你的ulimit命令设置了shell的限制,然后由所有继承它继承。