0

我正在尝试使进程不可抢占。我已将调度程序策略更改为SCHED_FIFO并将其设置rtprio为 99。一旦进程启动,在没有 IO 中断的情况下,我是否可以保证该进程不会被其他进程抢占?rtprio=99 是最高优先级还是内核的某些进程具有更高的优先级?最后,我如何知道进程在执行过程中是否被抢占?

4

1 回答 1

0

它确实有其他进程可以抢占 rt 最高的进程。stop_machine()例如,为热移除 CPUS、修改内核代码文本而创建的进程。

您可以从 /proc/$PID/sched 获取信息以确定进程是否已被抢占。猫 /proc/$PID/sched

nr_switches                        :                 4197
nr_voluntary_switches              :                 4140
nr_involuntary_switches            :                   57

如果nr_switches被改变,则进程已被抢占

于 2012-07-13T07:36:06.563 回答