在linux内核模式下,如何检测进程?

时间:2015-11-29 12:35:45

标签: c linux linux-kernel kernel

我需要创建一个用户模式进程。必须在内核模式下检测此进程,以便将其发送到Linux内核中的FIFO队列(SCHED_FIFO)。

我一直在调查,如果你使用位于core.c中的函数void scheduler_tick(void)(我认为系统会调用scheduler_tick每个时钟的cpu),我可以捕获进程。

我的问题是这是否正确,或者是否有更好的方法。

Scheduler_tick代码:http://lxr.free-electrons.com/ident?i=scheduler_tick

这项工作基于多级队列,其中将引入一系列不同的流程(我们有:支付流程,取消流程,预订流程和事件流程)。这些过程在系统中有不同的优先级。

因此,当我创建流程时,例如付款流程,我需要检测流程,因为我需要知道它是什么类型的优先级。

因此,要评论使用函数void scheduler_tick来检测进程的想法。

我不知道我是否解释得很好......

非常感谢。

2 个答案:

答案 0 :(得分:2)

创建用户进程不是内核问题。 创建的所有用户进程都是从init进程或其子进程分叉的。

答案 1 :(得分:0)

您不需要在内核中执行此操作。实际上,你必须将它保留在内核之外。

您需要做的是在初始化脚本中使用chrt或从初始程序或守护程序监视器使用sched_setscheduler