コンテキストスイッチとは?こんてきすとすいっち
コンテキストスイッチとは、タスクの切替えに伴い、CPUが保持していた実行状態——汎用レジスタ、プログラムカウンタ、スタックポインタ、状態レジスタ——を現在のタスクのタスク制御ブロックへ書き出し、入れ替わりに次のタスクぶんを読み戻す処理。RTOSでは所要時間の短さだけでなく、その値が状況によらず一定であることが要求される。
最終更新:2026-10-06
この語が出る過去問を解く →背景
1つのCPUで複数の処理を並行させる仕組みは、実際には短い時間で走らせる相手を取り替えているだけである。取り替えの前後で元のタスクが何事も無かったように続けられるには、CPUが持っていた状態を漏れなく保存して戻す必要がある。この保存量と所要時間が、応答性能の下限とタスク分割の粒度をそのまま決める。
具体例
浮動小数点レジスタまで毎回退避すると切替え時間が伸びるため、FPUを使ったタスクだけを対象に遅延して退避する実装がある。ArmのCortex-Mは例外発生時に一部のレジスタをハードウェアが自動退避し、切替えの手間を減らしている。
試験での引っ掛け
スケジューリングとの区別が問われる。次に走らせるタスクを決めるのがスケジューリング、実際にレジスタを退避・復元して引き渡すのがディスパッチ(コンテキストスイッチ)である。割込みが入れば必ず起きるわけでもなく、ハンドラを抜けて元のタスクへ戻るだけなら切替えは発生しない。
関連用語
出た過去問
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7(IPA)解説で登場
スレッドとプロセスに関する記述のうち、適切なものはどれか。
正解:同一アドレス空間に含まれているスレッド間の通信は、プロセス間の通信と比較して効率的に行われる。
要点:スレッドは空間共有ゆえプロセス間より通信が効率的
スレッドは1つのプロセス内に複数存在し、コード領域やデータ領域などのアドレス空間を共有する(スタックとコンテキストはスレッドごとに別々にもつ)。アドレス空間が共通なので、スレッド間ではメモリ上の変数を直接読み書きしてデータをやり取りでき、カーネルを介するプロセス間通信より効率がよい。切替え時に退避する情報も少なく、コンテキストスイッチも軽い。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。