私はLinux 4.19.2を使用しています。 https://elixir.bootlin.com/linux/v4.19.2/ident/
という構造を見つけました。作業構造これには、プロセス制御ブロックのすべての情報が含まれます。新しいプロセスを作成するとき、クロス()関数が呼び出され、同様の関数が呼び出されます。_do_fork()そしてコピープロセス()次のフィールドに値を入力してください。作業構造。
しかし、新しいプロセスの優先順位がどこにあるのかを見つけることはできません。 task_struct構造内の優先順位に使用されるフィールド名は次のとおりです。プリオ。プロセスが開始したら、どこから値を取得しますか?
答え1
このリンクで調べようとしました。https://elixir.bootlin.com/linux/v4.19.2/ident/
これは私が読めるLinuxカーネル相互参照を提供します。私は新しいプロセスをフォークするために次の機能を見つけました。_do_fork()着信電話コピープロセス()これは次の関数を呼び出します。sched_fork()。
関数を使用してプロセス優先順位が初期化される場所。通常優先順位()。