クリティカルセクション 【critical section】

概要

クリティカルセクション(critical section)とは、複数のプログラムが並行して実行されているとき、共有資源に同時にアクセスすることで不具合が生じる危険があるプログラム上の箇所のこと。また、そのような箇所を指定して同時に実行しないようにする制御を指すこともある。

マルチタスクマルチスレッドによりコンピュータ上で同時に複数のプログラム(の流れ)が実行されているとき、ある特定のメモリ領域やデータベース、ストレージ、周辺機器などの共有資源を対象に同時に処理を行うと、互いに相手の処理に干渉されて記録内容が破壊されたり、処理内容に矛盾が生じることがある。

プログラム上でそのような事態が生じうる箇所のことをクリティカルセクションという。クリティカルセクションは同時に実行されることがないよう、ロック機構などを用いて排他制御を行い、一度に一つのスレッドやプロセスしか資源にアクセスできないようにする必要がある。

オペレーティングシステム(OS)やプログラミング言語にはクリティカルセクションを適切に制御するための機能が組み込まれている場合がある。コード中の特定の範囲を指定して資源の占有や開放、他のコードに占有されている場合の実行待ちなどの処理を追加することができる。

(2020.4.10更新)

他の辞典による解説 (外部サイト)

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