コンテキストスイッチ【context switching】

概要

コンテキストスイッチとはCPUが実行中のプロセスまたはスレッドを一時停止し、その実行状態を保存した上で別のプロセスまたはスレッドの実行状態を復元して処理対象を切り替える操作のこと。マルチタスク環境の基盤となる機構であり、オペレーティングシステム(OS)のカーネルによって制御される。
コンテキストスイッチのイメージ画像

マルチタスク環境では、コンピュータCPUが一基しか搭載されていなくても、「タイムスライス」(time slice)と呼ばれる極めて短い時間ごとに実行するプログラムを自動的に切り替えていくことで、あたかも複数のプログラムを同時に実行しているように見せることができる。この切り替え動作をコンテキストスイッチという。

CPUがあるプロセスの実行を中断する際、その時点のプログラムカウンタや内部レジスタの値、スタック情報といった実行状態(これを「コンテキスト」という)をメインメモリ上のプロセス管理領域に退避する。続いて、次に実行すべきプロセスのコンテキストを同領域から読み込んでCPU内に復元し、前回の切り替え時に中断した箇所から処理を再開する。

コンテキストスイッチの仕組みはタスク切り替え以外にも活用されている。例えば、キーボード入力やタイマーの通知などハードウェアからの割り込み処理の開始・終了時にも行われるほか、アプリケーションが動作する「ユーザーモード」とOSカーネルが動作する「カーネルモード」(特権モード)の間で制御が移る際にも、実行状態の退避と復元が行われる。

コンテキストスイッチの実行には、レジスタの値の退避・復元や、キャッシュの入れ替え(フラッシュ)といったオーバーヘッドが伴う。切り替えの頻度が過度に高くなると、CPUが本来の処理よりも切り替え作業に多くの時間を費やすことになり、システム全体のスループットが低下する。なお、同じプログラム中のスレッド間の切り替えはプロセス間と比べてコンテキストの規模が小さく、オーバーヘッドが小さい特徴がある。

(2026.6.15更新)
 

他の辞典等による「コンテキストスイッチ」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。