様々な実装例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/17 00:29 UTC 版)
「コンテキストスイッチ」の記事における「様々な実装例」の解説
コンテキストスイッチはソフトウェアかハードウェアで実行される。インテルの80386やその後継CPUはハードウェアがコンテキストスイッチをサポートしていて、そのための特別なデータセグメント(タスク・ステート・セグメント、TSS)を用意している。タスクスイッチが発生すると(明示的にタスクを切り替える命令を実行するか、割り込みが発生したとき)、CPUは自動的に新しいコンテキストをTSSからロードする。このようにハードウェアでコンテキストスイッチを行うと高速だと思われるかもしれないが、Windowsを含めた主なOSはこの機能を使っていない。これは主にふたつの理由によるものである。まずハードウェアによるコンテキストスイッチは全部のレジスタをセーブしない(汎用レジスタだけで、浮動小数点レジスタもセーブしない)。もうひとつの理由は性能の問題である。 アーキテクチャによっては複数のコンテキストを同時に保持するハードウェアも存在する。その場合コンテキストをメモリに格納したりメモリから復帰させたりといったことをする必要がない。極端なケースとしてバレルプロセッサアーキテクチャではマシンサイクル毎にスレッド間でスイッチしながら動作する。
※この「様々な実装例」の解説は、「コンテキストスイッチ」の解説の一部です。
「様々な実装例」を含む「コンテキストスイッチ」の記事については、「コンテキストスイッチ」の概要を参照ください。
- 様々な実装例のページへのリンク