- 主题:Linux应用需要精度1毫秒的定时器,有什么方案?
只要会进入内核态,在非实时的 linux 里面就有可能卡很久。
【 在 chunhui 的大作中提到: 】
: 我说的就是这个意思。用一个孤立核心上的线程疯狂轮询频率寄存器。。。
--
FROM 117.24.95.*
把那个核心孤立出来只给它一个线程用。关键还是看对实时性要求到底有多严格。是不是要命的场景。
【 在 hgoldfish 的大作中提到: 】
: 只要会进入内核态,在非实时的 linux 里面就有可能卡很久。
--
FROM 121.69.86.*
要命的应用不放PLC放PC里?
流行的思路是上微服务,堆一万台PC保高可用,但不保实时性。
【 在 chunhui 的大作中提到: 】
: 把那个核心孤立出来只给它一个线程用。关键还是看对实时性要求到底有多严格。是不是要命的场景。
--
FROM 123.103.9.*
这个我不懂。我还没见过一万台pc。。
【 在 lipp 的大作中提到: 】
: 要命的应用不放PLC放PC里?
: 流行的思路是上微服务,堆一万台PC保高可用,但不保实时性。
--
FROM 121.69.86.*
好吧好吧,3台。
【 在 chunhui 的大作中提到: 】
: 这个我不懂。我还没见过一万台pc。。
--
FROM 123.103.9.*
跟内核态也没关系。
内核态一样做不到。
【 在 chunhui 的大作中提到: 】
: 我没试过轮询那种方法。要求不高凑合一下或许可以。真正严格准确定时器肯定要内核才行。
--
FROM 180.111.50.*
孤立一个核心出来也没用。
【 在 chunhui 的大作中提到: 】
: 把那个核心孤立出来只给它一个线程用。关键还是看对实时性要求到底有多严格。是不是要命的场景。
--
FROM 180.111.50.*
孤立核心为啥不行?是被执行那个过程会被调度?
不是放内核里,我是说实时内核。也做不到?
【 在 lvsoft 的大作中提到: 】
: 孤立一个核心出来也没用。
--
修改:chunhui FROM 121.69.86.*
FROM 121.69.86.*
跟调度没关系,这个是linux内核+x86系统的双重复杂性因素导致的。
如果只是内核态独立一个核心出来就能解决问题,那你觉得rt kernel还有啥价值嘛。
所以说了,直接上rt kernel。rt不是这么简单的东西,至少里面很多坑都已经被人踩过了。
【 在 chunhui 的大作中提到: 】
: 孤立核心为啥不行?是被执行那个过程会被调度?
: 不是放内核里,我是说实时内核。也做不到?
--
FROM 180.111.50.*
别说linux了,就真实时系统1ms都是个不小的挑战。
【 在 liuxueshen 的大作中提到: 】
: 没用,linux本身计时器有误差,加上系统本身不是实时的,1ms基本不可能。
: 否则用gettimeofday就行,里面有微秒。
:
--
FROM 213.95.148.*