b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Linux和Windows内存请求机制有什么区别?

电脑杂谈  发布时间:2020-12-05 14:02:35  来源:网络整理

linux内存管理机制_linux内存管理机制

谢谢你的邀请。

linux内存管理机制_linux内存管理机制

首先,Linux在问题中遇到的情况应该在没有内存限制的情况下发生。只要它是生产环境中的Linux系统,负责的系统管理员将设置ulimit用户继承的最大内存使用量。如果超过了限制,则程序将无法继续获取内存,或者new语句返回NULL,或者抛出oom异常(取决于编译器是否具有-fexceptions或-fno-exceptions)。但是,在许多系统的默认安装设置中,ulimit设置为无限制,包括一些经常用作服务器操作系统的Linux发行版,例如Debian。如果不限制ulimit,Linux将尝试满足应用程序的要求,直到虚拟内存(物理内存和磁盘交换区域)超过系统内置的硬限制。

linux内存管理机制_linux内存管理机制

(注意:所谓的硬限制是指Linux内核将在为用户进程保留的内存之外保留一部分专用于内核的内存,以确保在内存用尽时内核仍然可以工作。专用区域之外的部分,可以视为用户进程可以使用的内存硬限制。)

linux内存管理机制_linux内存管理机制

但是,发问者发现执行该程序后系统性能迅速下降,这可能与内存无关。一般来说,有两个因素可能导致此问题:一、物理内存已耗尽,导致内核对其他用户进程执行频繁的分页操作;二、while(1)在您的程序中未正确执行sleep(),耗尽了CPU时间。实际上,我倾向于认为第二个原因更可能是真正的原因。因为Linux和Windows已优化了物理内存分配,并且尚未写入任何内容以前直接占用物理内存,从代码角度来看,尽管虚拟内存可能会继续增加,但物理内存不太可能很快变紧,反之,CPU时间会更多可能会用完,因为默认情况下Linux多数情况下ulimit -t的发行版仍然是无限的,相反,Windows可以通过进程的优先级在一定程度上限制进程占用的CPU时间,因此程序不会失去响应。注意:尽管Linux也有一个不错的命令,但它的默认值是降低优先级,换句话说,默认情况下,所有进程都以相对较高且相等的优先级启动。

linux内存管理机制_linux内存管理机制

最后,实际上,您的两台测试机具有不同的配置。如果测试中使用的Windows计算机是双核,则这种情况更为正常:您仍然有一个空闲的内核,并且其他进程正在该空闲的内核上运行。

关于Linux和Windows的内存管理。我只能说我对Linux比较熟悉。我尚未阅读Windows的内存管理部分。我真的不确定。抱歉。

参考:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-338281-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...