在Linux上处理不可抢占(2.6.32)

时间:2012-06-01 14:18:43

标签: linux-kernel real-time scheduler preemption

我正试图让一个进程不可抢占。我已将调度程序策略更改为SCHED_FIFO并将rtprio设置为99.一旦进程启动,在没有IO中断的情况下,我是否确保该进程不会被抢占通过其他过程? rtprio = 99是最高优先级还是仍然有一些具有更高优先级的内核进程?最后,我怎么知道一个进程在执行过程中是否被抢占了?

1 个答案:

答案 0 :(得分:0)

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

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

nr_switches                        :                 4197
nr_voluntary_switches              :                 4140
nr_involuntary_switches            :                   57

如果更改nr_switches,则该过程已被抢占