オペレーティング システムでは、スケジューラはシステム コール API の後、またはハードウェア割り込み処理の後に呼び出されます。
スケジューラーを呼び出す方法と呼び出し元を見つけられませんか???
オペレーティング システムでは、スケジューラはシステム コール API の後、またはハードウェア割り込み処理の後に呼び出されます。
スケジューラーを呼び出す方法と呼び出し元を見つけられませんか???
スケジューラが呼び出されます。
TIF_NEED_RESCHED
、最も近い機会に:
preempt_enable()
cond_resched()
電話schedule()
呼び出し現在のスレッド/プロセスがスリープ/イベント/リソースの解放を待機する場合、スケジューラが呼び出されます。
ワークキューの形式で下半分を実行するワーカー スレッドのケースの 1 つは、while ループで実行され、ワークキュー リストが空かどうかをチェックします。空の場合は、自身を としてマークしTASK_INTERRUPTABLE
、呼び出しschedule()
てからスリープ状態に移行します。
ワークキュー リストが空でない場合、ワーカー スレッドは自分自身をマークしRUNNING
、延期された下半分を実行します。
したがって、一般schedule()
に、スリープしたいタスクによって呼び出され、CPUを他のプロセス/タスクに引き渡します。