我需要创建一个用户模式进程。必须在内核模式下检测此进程,以便将其发送到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来检测进程的想法。
我不知道我是否解释得很好......
非常感谢。
答案 0 :(得分:2)
创建用户进程不是内核问题。 创建的所有用户进程都是从init进程或其子进程分叉的。
答案 1 :(得分:0)
您不需要在内核中执行此操作。实际上,你必须将它保留在内核之外。
您需要做的是在初始化脚本中使用chrt或从初始程序或守护程序监视器使用sched_setscheduler。