如何修改android内核进程调度器



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

我想为用户交互任务分配一个实时优先级,以启发式或其他方式区分。

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

我该怎么做?

从安全的角度来看,修改Android的内核调度策略是不可能被允许的。但是基于"实时"的各种特性,你总是可以使你的程序满足这些要求:

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

b。低延迟:通过将每个作业拼接成尽可能小的一个片段,以便可以将控制传递回以响应输入,或者在音频的情况下,可以在时钟的精确开始(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低延迟音频使用SoundPool

Android低延迟音频播放

最新更新