2012-06-01 36 views
0

我试图让一个进程不可抢占。我已将计划程序策略更改为SCHED_FIFO,并将设置为99.只要进程启动,在没有IO中断的情况下,我是否有保证该进程不会被其他进程抢占? rtprio = 99是最高优先级还是还有一些优先级较高的内核进程?最后,我怎么知道一个进程在执行过程中是否被抢占?在Linux上无法抢占的进程(2.6.32)

回答

0

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

您可以从/ proc/$ PID/sched获取信息以确定进程是否被抢占。 执行cat/proc/$ PID /章附表

nr_switches      :     4197 
nr_voluntary_switches    :     4140 
nr_involuntary_switches   :     57 

如果nr_switches改变,过程已经抢占