Linux スケジューラーおよびその他の同様のカーネル システム コールについて一般的な質問があります。
Linuxスケジューラは「プロセス」と見なされ、スケジューラへのすべての呼び出しには、別のプロセスのようなコンテキストスイッチが必要ですか?
現在実行中のユーザー モード プロセスを中断するクロック ティックがあり、スケジューラを呼び出す必要があるとします。スケジューラ自体への呼び出しは、コンテキスト スイッチを引き起こしますか? スケジューラには、呼び出しごとに復元する必要がある独自のレジスタと U 領域のセットがありますか?
そして、上記の質問は他の多くのシステムコールにも当てはまります。カーネル プロセスは、コンテキストの切り替えに関して通常のプロセスのように動作しますか? 唯一の違いは、より多くの権限と CPU へのアクセスがあることです
これは、コンテキスト スイッチのオーバーヘッドが高いためです。また、スケジューラ自体を呼び出すと、スケジューラの状態を復元するためにコンテキスト スイッチが呼び出され、その後、スケジューラが別のプロセスを呼び出して実行し、別のコンテキスト スイッチを呼び出すというのは奇妙に思えます。