スケジューラはスレッドではなくカーネル機能なので、スケジューラが何をするのかを実際に「見る」方法はありません(家庭)。カーネルのこれらの特定の部分はユーザーには見えません(もう一度想定します)。
(追加の質問:ユーザーに表示されず、スレッド/プロセスとして表示されない他の部分は何ですか?)
これらのカーネル部分が見えない場合は、どのように想像するのかわかりません。私の言葉は、目に見えない部分はどのように、どこで行われるのでしょうか?コンテキスト切り替え後にスケジューラを実行するようにCPUに指示する人は誰ですか?誰がCPUにこのタスクを「指示」しますか?
答え1
あなたの質問は非常に広範囲です。スケジューラ部分を具体的に取り上げます。
スケジューラは関数なので、関数が呼び出されるたびに実行されます。私がElixirに接続した理由は、特定の関数の呼び出しサイトを閲覧できるようにするためです(参考資料の確認__schedule
)。たとえば、カーネルがユーザースペース(例えばサービスシステムコール後)、スケジュールの変更が要求されたことを確認します。その場合、スケジューラが呼び出されます。
したがって、デフォルトでは、スケジューラはカーネルに必要なときに実行されます。カーネルが制御できる限り、スケジューラを実行でき、これが頻繁に発生します。
バラよりシングルコアPCでは、Linuxのさまざまなプロセスはどのように管理されていますか?詳しくはリンクをご覧ください。