コンテキスト 【context】 コンテクスト
概要
コンテキスト(context)とは、文脈、前後関係、事情、背景、状況などの意味を持つ英単語。ITの分野では、利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。例えば、ある同じ操作方法によって呼び出すソフトウェアの操作メニューが、選択されている操作対象や設定された動作モードなどによって項目が入れ替わることがある。このようなメニューを文脈に沿って内容が変化するという意味でコンテキストメニューという。
プログラミングにおけるコンテキスト
プログラミングの分野でも、同じコード記述やプログラム上の要素が、その置かれているプログラム内での位置や、実行される際の内部状態などによって異なる振る舞いをしたり、異なる制約を受けたりすることを指してコンテキストということがある。
また、画面描画やグラフィックス処理、入出力機器の制御などで、入出力先の装置を抽象化し、プログラム上で扱えるデータ構造の集合などの形に表したものをコンテキスト(デバイスコンテキスト、グラフィックスコンテキスト、レンダリングコンテキスト等)ということがある。
OSの実行制御におけるコンテキスト
コンピュータの処理装置(CPU)が現在実行している処理の流れ(プロセス、スレッド)を一時停止し、別のものに切り替えて実行を再開することをコンテキストスイッチ(context switching)という。
一つのプロセッサ(コア)で複数の命令の流れを同時に実行状態に置くマルチタスク制御のために行われるもので、ある命令の流れの実行を中断し、同じように中断していた別の流れの実行を再開する処理を指す。この切り替えを短い時間ごとに頻繁に行うことで、あたかも人間には複数のプログラムが並列に実行されているように感じる。
実行の流れを切り替えるには、単に切り替え先のプログラムで次に実行される命令を読み込んでCPUに投入するのでは不完全で、切り替え直前のCPU内部の記憶装置(レジスタ)の内容などをメモリ上に移し替えて保全し、同じように保全されていた切り替え先の直前の実行状態を書き戻すといった処理が必要となる。このような、あるプログラムのある瞬間の実行状態の全体を指してコンテキストという。
関連用語
他の辞典による解説 (外部サイト)
この記事を参照している文書など (外部サイト)
- 海上自衛隊幹部学校 戦略研究会 トピックス「CSBAが“Mosaic Warfare(モザイク戦)”のレポートを発表 -AIと自律システムの軍事的将来像-」にて引用 (2020年4月)