コンテキスト スイッチは O(1) プロセスですか、それともコンテキスト スイッチ クォンタムは、それにかかる時間に影響を与える可能性があるさまざまなローカル要因に依存していますか?
1 に答える
3
いいえ、さまざまな理由で。主なものは、同じプロセスの2つのスレッド間でコンテキストを切り替えること、および異なるプロセスの2つのスレッド間でコンテキストを切り替えることは、アドレス空間の変更を意味します。アドレス空間の変更は、キャッシュとメモリにとって常にコストのかかる操作です。x86ではページディレクトリをリロードする必要があり、PowperPCではTLBを無効にしてリロードする必要があります...
スレッドからカーネルに移行する場合、アドレス空間の変更は必須ではありません。念のために言っておきますが、Linuxには常にカーネルアドレス空間がロードされていると思います(PAE機能を使用し、4エントリPDBRのエントリをカーネルアドレス空間でロックし、ASの上位半分の0xc0000000から開始します)。
于 2012-06-12T15:20:27.323 に答える