首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/494323

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

OOM-KILLer的演进与新的启发式策略

linux在2.6.36内核中修正了oom-killer的行为,oom-killer在引入之初就曾引发过争论,这个东西到底应不应该存在,内存不够用了的时候,到底应不应该由操作系统内核替我们做一些事,比如选出一个吃内存的大户,然后干掉它,这种行为甚是鲁莽,按照机制和策略分离的原则,内核其实应该将这件事报告给用户,让用户空间进程判断应该怎么做,然而此时已经没有内存,机器可能已经无法操作,起码已经是死寂之神态,内核又如何通知用户,因此索性就oom-killer了。 早期的oom-killer在选择应该被杀掉的进程的时候的策略非常之简单,就是以该进程之虚拟地址空间的大小为基准,然后以运行时间以及fork情况加上nice值等细小因素微扰之,最终取出一个得分最高者,杀之!这种策略显然无法服众啊,操作系统实际需要的是物理内存页面,此时已经没有,因此操作系统需要的是其它进程的物理内存页面被释放,而早期策略使用虚拟地址空间的大小为基准实则不合适,毕竟要知道虚拟地址空间只是组织保护模式操作系统之所用,进程实际使用的是物理内存,物理内存页面映射进虚拟内存之后,方可展现保护模式的操作系统之多作业并发之态。以...

使用jni接口完成android本地程序的运行--具体的操作

虽然上一篇文章《使用jni接口完成android本地程序的运行》讲述了一些理论上的知识,但是如何具体操作呢?要知道android的java虚拟机与标准的jvm是不一致的,因此肯定会遇到具体操作的问题。实际上,具体操作也不难,只要按照android文档的介绍按部操作即可: 1.在apps目录下拷贝一个最简单的例子,比如hello-jni作为模板,命名为你的应用的名称,然后删除其下的和hello-jni相关的内容; 2.将需要编译的源代码树拷贝到jni目录之下; 3.jni目录下的Android.mk文件内容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CFLAGS := ...#拷贝所有原始Makefile中的CFLAGS/CPPFLAGS/等等一切命令行标志,包括预编译宏的定义 LOCAL_LDLIBS := ...#拷贝所有的链接时用到的动态库路径,动态库,静态库(-L,-l) LOCAL_MODULE := ...#最终的供java调用的so名称,省略了lib和.so的 LOCAL_SRC_FILES ...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。