1
在Linux中,當創建新進程時,它繼承其父進程的normal_prio
值爲static_prio
。這在哪裏發生?Linux中的新進程從父進程的優先級繼承
它是在dup_task_struct()
函數中完成還是在copy_process()
函數中?
在Linux中,當創建新進程時,它繼承其父進程的normal_prio
值爲static_prio
。這在哪裏發生?Linux中的新進程從父進程的優先級繼承
它是在dup_task_struct()
函數中完成還是在copy_process()
函數中?
它實際上在sched_fork發生是由copy_process
稱爲父的優先級被轉移到孩子這樣
p->prio = current->normal_prio;
其中p爲孩子的task_struct
和current
指向父最初的東西。
然後normal_prio
被修改,這樣
p->prio = p->normal_prio = __normal_prio(p);
__normal_prio(p)
最終歸結爲類似
return p->static_prio;
檢查了2個鏈接我已經加入到探索更多。
謝謝..有沒有任何工具或方式使用我可以跟蹤這些事情?我的意思是我可以追蹤流程的任何方式,流程是如何創建和安排的? – rAzOr 2012-03-14 16:00:56
'kdb'和'kgdb'(你可以谷歌他們)是調試Linux內核的兩個調試器。調試Linux內核不是一件簡單的事情。我寧願建議閱讀一些關於Linux/Linux內核的好書。前羅伯特洛夫之一。也可以使用http://lxr.free-electrons.com/作爲參考 – 2012-03-14 16:05:18
感謝您的參考和建議.. – rAzOr 2012-03-14 17:05:59