找回密码
 注册
搜索
查看: 1800|回复: 3

[讨论] Android内核驱动—内存管理

[复制链接]
发表于 2013-2-21 14:39:12 | 显示全部楼层 |阅读模式
  关键词:

  android,linux内核,android基础教程,androidweb应用,android2高级编程,android内核剖析,android应用开发揭秘,深入理解android,精通android游戏开发,Android应用开发,Android手机开发

  文档简介:

  第十四章Android内核驱动——内存管理14.1LowMemoryKiller基本原理Android的LowMemoryKiller是在标准linuxkernel的OOM基础上修改而来的一种内存管理机制,当系统内存不足时,杀死Bad进程释放其内存。Bad进程的选择标准有两个:oomadj和占用内存的大小。oomadj代表进程的优先级,数值越大,优先级越高,对应每个oomadj都有一个空闲内存的阈值。AndroidKernel每隔一段时间会检查当前空闲内存是否低于某个阈值,如果是,则杀死oomadj最大的Bad进程,如果有两个以上Bad进程oomadj相同,则杀死其中占用内存最多的进程。LowMemoryKiller与OOM的区别OOM即OutofMemory是标准linuxKernel的一种内存管理机制,LowMemoryKiller在它基础上作了改进:OOM基于多个标准给每个进程打分,分最高的进程将被杀死;LowMemoryKiller则用oomadj和占用内存的大小来选择Bad进程OOM在内存分配不足时调用,而LowMemoryKiller每隔一段时间就会检查,一旦发现空闲内存低于某个阈值,则杀死Bad进程。LowMemoryKiller的实现LowMemoryKiller的源代码在drivers/staging/android/lowmemorykiller.c中,它是通过注册CacheShrinker来实现的。CacheShrinker是标准linuxkernel回收内存页面的一种机制,它由内核线程kswapd监控,当空闲内存页面不足时,kswapd会调用注册的Shrinker回调函数,来回收内存页面。LowMemoryKiller是在模块初始化时注册CacheShrinker的,代码如下:staticintinitlowmeminit(void){registershrinker(&l......。

  
【文件名】:13221@52RD_Android内核驱动—-内存管理_1345772063359.pdf
【格 式】:pdf
【大 小】:590K
【简 介】:
【目 录】:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2013-3-1 12:04:44 | 显示全部楼层
刚刚的 顶一个
点评回复

使用道具 举报

发表于 2013-2-22 13:45:50 | 显示全部楼层
顶,不错
点评回复

使用道具 举报

发表于 2013-2-22 08:41:54 | 显示全部楼层
顶一个!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-1 01:22 , Processed in 0.047477 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表