OOM机制
OOM机制会监控占用内存过大的进程并且自动杀死该进程.可以设置proc/PID/oom_adj参数为-17,临时关闭OOM机制,proc/$PID/oom_adj则保护进程被杀掉
linux系统中,OOM机制的实现文件是mm/oom_kill
内存不足调用out_of_memory处理
oom_kill_process的功能是执行具体的杀死进程
check_panic_on_oom检查处理当前运行的进程
android系统Low Memory killer架构
在android系统中,通过low memory killer在用户空间中设置了一组内存临界值.如果里面的某个值与进程描述中的oom_adj值在同一范围就kill该进程
设备中sys/module/lowmemorykiller/parameters/adj指定oom_adj的最小值
sys/module/lowmemorykiller/parameters/minfree中存储空闲页面的数量
例:将0,9写入sys/module/lowmemorykiller/parameters/adj, 1024,4096写入sys/module/lowmemorykiller/parameters/minfree,表示当一个进程的空闲存储空间下降到4096个页面,会kill掉oom_adj值为9的或者更大的进程,当下降到1024个页面,会kill掉oom_adj值为0或者更大的进程
驱动实现文件drivers/misc/lowmemorykiller.c