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