コンテキストスイッチとは?
コンテキストスイッチとは、実行するタスクを切り替えるために、現在のタスクのレジスタ群・プログラムカウンタ・スタックポインタなどを退避し、次のタスクの状態を復元する処理。RTOSではこの所要時間が短く、かつ一定であることが求められる。
エンベデッドシステムスペシャリスト試験の過去問では1回出題されています。
こんてきすとすいっち
コンテキストスイッチの意味
実行するタスクを切り替えるために、現在のタスクのレジスタ群・プログラムカウンタ・スタックポインタなどを退避し、次のタスクの状態を復元する処理。RTOSではこの所要時間が短く、かつ一定であることが求められる。
コンテキストスイッチの具体例
浮動小数点レジスタを使うタスクでは退避量が増えるため、使うタスクだけ遅延退避する実装がある。
コンテキストスイッチは試験でどう引っ掛けられる?
スケジューリングと混同しやすい。次に走らせるタスクを決めるのがスケジューリング、実際にレジスタを退避・復元して切り替えるのがディスパッチ(コンテキストスイッチ)。また割込みが入れば必ず起きるわけではなく、ハンドラを抜けた後に元のタスクへ戻るなら切替えは発生しない。
コンテキストスイッチと関連する用語
コンテキストスイッチが出た過去問
スレッドとプロセスに関する記述のうち、適切なものはどれか。
正解:同一アドレス空間に含まれているスレッド間の通信は、プロセス間の通信と比較して効率的に行われる。
要点:スレッドは空間共有ゆえプロセス間より通信が効率的
スレッドは1つのプロセス内に複数存在し、コード領域やデータ領域などのアドレス空間を共有する(スタックとコンテキストはスレッドごとに別々にもつ)。アドレス空間が共通なので、スレッド間ではメモリ上の変数を直接読み書きしてデータをやり取りでき、カーネルを介するプロセス間通信より効率がよい。切替え時に退避する情報も少なく、コンテキストスイッチも軽い。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 am2 問7(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。