【发布时间】:2015-11-29 12:35:45
【问题描述】:
我需要创建一个用户模式进程。这个进程必须在内核模式下被检测到才能被发送到 Linux 内核中的 FIFO 队列(SCHED_FIFO)。
我一直在调查,如果您使用位于 core.c 中的函数void scheduler_tick(void)(我认为系统会在 cpu 时钟的每个滴答声中调用 scheduler_tick),我可以捕获该进程。
我的问题是这是否正确,或者是否有更好的方法。
Scheduler_tick 代码:http://lxr.free-electrons.com/ident?i=scheduler_tick
这项工作基于一个多级队列,其中将引入一系列不同的流程(我们有:支付流程、取消流程、预订流程和事件流程)。这些进程在系统中具有不同的优先级。
因此,当我创建流程时,例如支付流程,我需要检测流程,因为我需要知道您的优先级是什么类型。
因此评论一下使用函数void scheduler_tick来检测进程的想法。
不知道我解释的好不好……
非常感谢。
【问题讨论】:
-
我不明白。这不是“正常”进程加载器所做的,或者可能是 fork()?
-
当您通过syscalls(2) 对用户空间中的Advanced Linux Programming 不太了解非常了解 时,为什么要破解内核?这看起来像是一个巨大的错误。经验法则是尽可能避免内核修补
标签: c linux linux-kernel kernel