1. ホーム
  2. multithreading

[解決済み] スレッドコンテキストスイッチとプロセスコンテキストスイッチの比較

2022-05-04 17:24:27

質問

この2つの状況で、具体的に何をするのか、どなたか教えてください。それぞれの主なコストは何ですか?

解決方法は?

スレッドスイッチとプロセススイッチの主な違いは、スレッドスイッチの場合は仮想メモリ空間が同じままですが、プロセススイッチの場合は仮想メモリ空間が同じままではないことです。 どちらのタイプでも、OSカーネルに制御を渡してコンテキストスイッチを実行します。OSカーネルへの出入りのプロセスと、レジスタの切り替えコストが、コンテキストスイッチの実行に伴う最大の固定コストとなります。

さらにファジーなコストは、コンテキストスイッチがプロセッサのキャッシュ機構を混乱させることです。基本的に、コンテキストスイッチを行うと、プロセッサがキャッシュに記憶しているすべてのメモリアドレスが事実上無意味になります。ここで1つ大きな違いは、仮想メモリ空間を変更すると、プロセッサのTranslation Lookaside Buffer(TLB)または同等のものがフラッシュされ、しばらくの間メモリアクセスがより高価になることです。スレッドスイッチの場合は、このようなことは起こりません。