我需要創建一個用戶模式的過程。這個過程必須在內核模式下被檢測到,以發送到Linux內核中的FIFO隊列(SCHED_FIFO)。在linux內核模式下,如何檢測進程?
我一直在調查,如果你使用函數void scheduler_tick(void)
,它位於core.c(我認爲scheduler_tick被系統調用每個時鐘的CPU時鐘),我可以捕獲進程。
我的問題是如果這是正確的,或者如果有更好的方法。
Scheduler_tick代碼:http://lxr.free-electrons.com/ident?i=scheduler_tick
工作是基於多級隊列,其中將推出一系列diferente過程(我們有:支付流程,取消過程,保留過程和事件處理)。這些流程對系統具有不同的優先級。
因此,當我創建一個流程,例如支付流程時,我需要檢測流程,因爲我需要知道哪種類型是您的優先級。
因此要評論使用函數void scheduler_tick來檢測進程的想法。
我不知道我是否說得好...
非常感謝。
我不明白。這不是'正常'的進程加載器,或可能fork()? –
爲什麼當你不知道*在用戶空間[syscalls(2)](http)中的[Advanced Linux Programming](http://www.makelinux.net/alp/)時, ://man7.org/linux/man-pages/man2/syscalls.2.html)?它看起來像一個巨大的錯誤。經驗法則是**儘可能避免內核修補** –