スケジューラはどこでどのように実行されますか?私は見ることができますか? [コピー]

スケジューラはどこでどのように実行されますか?私は見ることができますか? [コピー]

スケジューラはスレッドではなくカーネル機能なので、スケジューラが何をするのかを実際に「見る」方法はありません(家庭)。カーネルのこれらの特定の部分はユーザーには見えません(もう一度想定します)。

(追加の質問:ユーザーに表示されず、スレッド/プロセスとして表示されない他の部分は何ですか?)

これらのカーネル部分が見えない場合は、どのように想像するのかわかりません。私の言葉は、目に見えない部分はどのように、どこで行われるのでしょうか?コンテキスト切り替え後にスケジューラを実行するようにCPUに指示する人は誰ですか?誰がCPUにこのタスクを「指示」しますか?

答え1

あなたの質問は非常に広範囲です。スケジューラ部分を具体的に取り上げます。

スケジューラは関数なので、関数が呼び出されるたびに実行されます。私がElixirに接続した理由は、特定の関数の呼び出しサイトを閲覧できるようにするためです(参考資料の確認__schedule)。たとえば、カーネルがユーザースペース(例えばサービスシステムコール後)、スケジュールの変更が要求されたことを確認します。その場合、スケジューラが呼び出されます。

したがって、デフォルトでは、スケジューラはカーネルに必要なときに実行されます。カーネルが制御できる限り、スケジューラを実行でき、これが頻繁に発生します。

バラよりシングルコアPCでは、Linuxのさまざまなプロセスはどのように管理されていますか?詳しくはリンクをご覧ください。

関連情報