コンテキストスイッチとは?こんてきすとすいっち
コンテキストスイッチとは、CPUが動かす相手を別のプロセス(実行中のプログラム)やスレッド(その中の処理の流れ)へ入れ替えるときに行う、実行状態の退避と復元の処理。いま動いている側のレジスタ(CPUの中の一時置き場)の値や、次に実行する命令の位置を示すプログラムカウンタを、プロセスごとの管理情報の置き場(プロセス制御ブロック、PCB)へ保存し、次に動かす側の保存内容を書き戻す。この間は利用者の処理が1つも進まないため、回数が増えるほど性能が落ちる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
CPUは一度に1つの処理しか実行できないのに、利用者は音楽を鳴らしながら文書を書き、裏で更新も走らせたい。そこでOSが短い時間で実行相手を次々に入れ替え、同時に動いているように見せている。入れ替えの前後で計算の途中経過が失われては困るので、状態をまるごと保存して戻す手続きが必要になった。試験では、1回にCPUを使える持ち時間(タイムクウォンタム)の長さと、応答性・スループット(単位時間あたりの処理量)の関係として問われる。
具体例
Windowsのパフォーマンスモニターで見えるコンテキストスイッチ数は、平常時でも毎秒数万回に達する。1回が数マイクロ秒でも毎秒10万回起きれば、1秒のうち相当な時間を切替えだけに使う計算になる。タイムクウォンタムを短くすると応答は良くなるが、この回数が増えて実効スループットは下がる。
試験での引っ掛け
費用はレジスタの退避・復元だけではなく、キャッシュやTLB(仮想記憶のアドレス変換の結果を覚えておく専用の小さなキャッシュ)の中身が入れ替わることによる遅さのほうが大きい場合がある。同じプロセス内のスレッド切替えはメモリ空間を共有するので影響が小さい。割込みが起きれば必ず切替わる、というのも誤りで、割込み処理を終えて同じプロセスへ戻ることもある。
関連用語
出た過去問
出典:平成28年度 秋期 基本情報技術者試験 午前 問18(IPA)解説で登場
マルチプログラミングにおけるプロセスの切替え手順を示した図において,OSの処理a~cとして,適切な組合せはどれか。
正解:a:実行状態の退避 b:プロセスの選択 c:実行状態の回復
要点:プロセス切替えは退避→次プロセス選択→回復の順
プロセス切替え(コンテキストスイッチ)では、まず割込みで中断したプロセスのレジスタなどの実行状態を保存し、次にディスパッチャが次に動かすプロセスを選び、最後に選んだプロセスの実行状態を復元してCPUを渡す。退避→選択→回復の順序になる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。