2

プロセス間のコンテキスト切り替えは、すべてのプロセスで同じ時間かかりますか (定数時間)、またはコンテキスト切り替え時間は、プロセスごとに異なるさまざまなローカル要因 (プロセス サイズ、スタック サイズなど) に依存しますか?

編集:OSとハードウェアが固定されていると仮定すると、特定のOSとハードウェアで時間が同じになることを意味します。環境 ?

4

1 に答える 1

1

OS/プロセスと同様にハードウェアによって異なります:(別のプロセスからスレッドを実行するには、メモリ管理コンテキスト、浮動小数点コンテキストなどを交換する必要があります。これは、一部のハードウェアでは他のものよりも簡単/高速です.

ドライバーは、ハードウェアを処理し、スレッドを実行する必要があることを OS に通知するのにかかる時間が大きく異なります。これは別の複雑さです。

場合によっては、そのようなスワップでは、スワップを開始したハードウェア/ソフトウェア割り込みを受け取ったコアとは別のコアで実行されているスレッドのプリエンプションが必要になる場合があります。これは、同じプロセッサでコンテキストをスワップするよりもはるかに時間がかかります。

これについて平均的な数値を出すのは困難です。プロセス間スレッドスワップを開始したドライバー割り込み、またはドライバーからスケジューラーへのエントリから、どこから時間を計りますか?

したがって、全体として、時間がかかることと、状況によって異なる可能性があることにおそらく同意できます。

于 2012-04-29T12:13:29.467 に答える