1 内核不可抢占,导致用户态程序的响应时间不可确定,这也是preempt-RT做的最大工作。
2 内核少量关键区还是用的spin lock,这也是不可抢占的,us级别左右。
3 存在优先级反转,即高优先级由于资源不满足(被低优先级把持)也无法运行。
4 Linux系统是多任务系统,任务队列、优先级和上下文切换都会带来不可预期的调度时间。
5 Linux内核硬中断和部分内核线程有最高优先级,进程调度时,可能会抢占低优先级的实时线程。
6 现代计算机的系统结构也或多或少影响了其不确定性,如多级存储结构,cache到内存的数据存在可调度队列,以最大内存带宽的并行性;CPU的乱序执行;PCI总线的延迟变化等。
【 在 wjhtingerx 的大作中提到: 】
: 能具体举几个例子吗?
:
--
修改:lambdago FROM 119.103.106.*
FROM 119.103.106.*