如果我在标准 Linux Mint 安装上执行以下命令:
comp ~ $ ps -eo rtprio,nice,cmd
RTPRIO NI CMD
...
99 - [migration/0]
99 - [watchdog/0]
99 - [migration/1]
- 0 [ksoftirqd/1]
99 - [watchdog/1]
我得到一些实时优先级为 99 的进程。
rtprio
在非实时 Linux 中是什么意思?这是否意味着如果我只用rtprio
99 运行一个程序,它就会实时运行?实时操作系统在这个故事中属于什么位置?
答案1
“实时”意味着过程必须在最后期限前完成,否则就会发生坏事(TM)。实时内核是一种内核延迟受到严格限制的内核(可能会受到硬件行为不当而无法按时响应的影响),并且大多数活动都可以被中断以让更高优先级的任务运行。就 Linux 而言,普通内核并不是实时设置的(它会降低性能,而且实时补丁依赖于核心开发人员认为粗俗的一些黑客行为)。此外,在无法跟上的机器(大多数个人机器)上运行实时内核是没有意义的。
也就是说,普通内核处理实时优先级,这使它们比普通任务具有更高的优先级,并且这些任务通常会运行直到它们自愿让出 CPU。这可以更好地响应这些任务,但意味着其他任务会被推迟。