両方の状況で具体的に何が行われるのか教えていただけますか? それぞれの主なコストはいくらですか?
ベストアンサー1
スレッド スイッチとプロセス スイッチの主な違いは、スレッド スイッチ中は仮想メモリ空間が同じままであるのに対し、プロセス スイッチ中は仮想メモリ空間が同じではないことです。どちらのタイプでも、コンテキスト スイッチを実行するためにオペレーティング システム カーネルに制御が渡されます。OS カーネルへの切り替えと OS カーネルからの切り替えのプロセスとレジスタの切り替えコストは、コンテキスト スイッチを実行する際の最大の固定コストです。
よりあいまいなコストは、コンテキスト スイッチがプロセッサのキャッシュ メカニズムに影響を及ぼすことです。基本的に、コンテキスト スイッチを行うと、プロセッサがキャッシュに「記憶」しているすべてのメモリ アドレスが実質的に役に立たなくなります。ここでの 1 つの大きな違いは、仮想メモリ空間を変更すると、プロセッサの Translation Lookaside Buffer (TLB) または同等のものがフラッシュされ、しばらくの間、メモリ アクセスのコストがはるかに高くなることです。これは、スレッド スイッチ中には発生しません。