スケジューラロジックをバイパスして、別のスレッドへの即時コンテキストスイッチを実行するようにカーネルにアドバイスすることは可能ですか?
たとえば、でスレッド/プロセスを作成したばかりで、すぐclone
に実行を開始したい場合は、カーネルが次にスケジュールを変更するのを待つのではなく、現在のコンテキストをすぐに放棄します。
thread_switch
理想的には、Machカーネルでの呼び出しと同じものを探しています。
スケジューラロジックをバイパスして、別のスレッドへの即時コンテキストスイッチを実行するようにカーネルにアドバイスすることは可能ですか?
たとえば、でスレッド/プロセスを作成したばかりで、すぐclone
に実行を開始したい場合は、カーネルが次にスケジュールを変更するのを待つのではなく、現在のコンテキストをすぐに放棄します。
thread_switch
理想的には、Machカーネルでの呼び出しと同じものを探しています。
カーネルはおそらくいつそれを行うかよりもはるかによく知っているので、コンテキストスイッチを制御しようとしてはいけません。特に、コンテキストスイッチはコストのかかる操作と見なされるため(主にキャッシュの無効化のため)。
ただし、本当にスケジューラサイクルを強制する必要がある場合は、sched_yield()
システムコールを使用できます。