我已经配置了一个高分辨率的linux计时器,每毫秒唤醒一次我的进程.这工作正常,但时间有两个问题:
>唤醒时的抖动
>清醒时处理时间的可变性,尽管该过程完成的处理是恒定的.
我将这些问题归结为linux的实时性能.但我需要
研究提高实时性能的方法.
我已经检查过内核配置了CONfig_PREEMPT内核选项,这对实时有用.
我还将SCHED_FIFO调度类应用于我的进程:
struct sched_param schedparm;memset(&schedparm,sizeof(schedparm));schedparm.sched_priority = 1; // lowest rt prioritysched_setscheduler(0,SCHED_FIFO,&schedparm);
但这没有任何区别.
我想一个合乎逻辑的步骤是将PREEMPT_RT补丁应用于内核构建,但我还没有确定如何做到这一点.
我还能做些什么来改善抖动/持续时间的变化吗?
或者任何人都可以建议一个关于如何应用PREEMPT_RT补丁的可访问教程?
解决方法 似乎PREEMPT_RT是合乎逻辑的下一步.你试过这个教程吗?https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
更新:我建议您看看其他人如何构建抢占式内核,例如:这里:
https://aur.archlinux.org/packages/linux-rt/
您可以阅读PKGBUILD以了解所做的事情.
总结以上是内存溢出为你收集整理的如何提高Linux中1ms定时器的实时性能?全部内容,希望文章能够帮你解决如何提高Linux中1ms定时器的实时性能?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)