如何修改android内核进程调度程序?

时间:2015-07-26 06:24:00

标签: android kernel scheduler

我想自己修改android调度程序“CFS”。

我想为通过启发式或其他方式区分的用户交互式任务分配实时优先级。

所以,我只想修改android内核,构建我的修改内核并研究性能。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

从安全角度来看,不太可能允许修改Android的内核调度策略。但基于"实时"的各种功能;您始终可以使您的计划满足以下要求:

一个。响应性:确保输入循环尽可能高效,并始终尽可能快地响应输入。在Linux内核中,这是通过"自愿抢占"来完成的。

湾低延迟:通过将每个作业拼凑成尽可能小的部分,以便可以传回控制以响应输入,或者在音频的情况下,可以在精确的时钟开始时发出控制(SCHED_DEADLINE调度)。 Android确实有一些API:

http://source.android.com/devices/audio/latency_design.html

一般而言,改变优先级并不是解决实时要求的理想选择(例如,为一个进程提供更高的优先级可能会导致另一个进程遇到性能损失)。实际做了什么(例如,LynxOS,一个在导弹系统中使用的实时操作系统,而不是Linux,但它的某些组件,如TCP / IP来自FreeBSD)是调整系统,使其在大量的备用硬件容量。因此在LynxOS中,很多系统阈值限制非常低,因此硬件总是足够自由,可以快速响应输入事件。

https://github.com/keesj/gomo/wiki/AndroidScheduling

Android Low latency Audio using SoundPool

Low-latency audio playback on Android