0
我试图让一个进程不可抢占。我已将计划程序策略更改为SCHED_FIFO
,并将设置为99.只要进程启动,在没有IO中断的情况下,我是否有保证该进程不会被其他进程抢占? rtprio = 99是最高优先级还是还有一些优先级较高的内核进程?最后,我怎么知道一个进程在执行过程中是否被抢占?在Linux上无法抢占的进程(2.6.32)
我试图让一个进程不可抢占。我已将计划程序策略更改为SCHED_FIFO
,并将设置为99.只要进程启动,在没有IO中断的情况下,我是否有保证该进程不会被其他进程抢占? rtprio = 99是最高优先级还是还有一些优先级较高的内核进程?最后,我怎么知道一个进程在执行过程中是否被抢占?在Linux上无法抢占的进程(2.6.32)
它确实有其他进程可以抢占最高rt进程。例如,由stop_machine()
创建的用于热删除CPUS的过程,修改内核代码文本。
您可以从/ proc/$ PID/sched获取信息以确定进程是否被抢占。 执行cat/proc/$ PID /章附表
nr_switches : 4197
nr_voluntary_switches : 4140
nr_involuntary_switches : 57
如果nr_switches
改变,过程已经抢占