読み方 : はいたせいぎょ

排他制御 【mutual exclusion】 相互排他

概要

排他制御(mutual exclusion)とは、複数の主体が同じ資源を同時に利用すると競合状態(race condition)が生じる場合に、ある主体が資源を利用している間、別の主体による資源の利用を制限もしくは禁止する仕組みのこと。

例えば、あるプログラムがストレージ上のあるファイルに書き込みを行なっている最中に、並行して実行されている別のプログラムがそのファイルへの書き込みを開始してしまうと、ファイルの内容が破壊され整合性のないものになってしまう。

このような事態を防ぐために、ファイルへの書き込みが行われている間は別のプログラムによる書き込みを禁止するという制御が行われる。このような制御は「ロック」(lock)と呼ばれ、最も有名な排他制御の方式の一つである。

排他制御は割り込み禁止機構などのハードウェア上の機能を利用して実装する場合と、プログラムの実行制御によりソフトウェア的に実装する場合がある。オペレーティングシステム(OS)やライブラリなどの中には、これを利用するプログラムに対して何らかの同期機構を提供するものもある。

OS上のプロセスやプログラム上のスレッド間でロック機構を実現する方式として「ミューテックス」(mutex)がよく用いられる。また、資源が複数個ある場合の排他制御として、プロセスが資源へのアクセスを開始・終了する度に利用可能な残り数を増減させる「セマフォ」(semaphore)が用いられることもある。

(2020.4.24更新)

他の用語辞典による「排他制御」の解説 (外部サイト)

資格試験などの「排他制御」の出題履歴

▼ ITパスポート試験
令1秋 問64】 データベース管理システムにおける排他制御の目的として、適切なものはどれか。
平27春 問77】 DBMSにおいて、データへの同時アクセスによる矛盾の発生を防止し、データのー貫性を保つための機能はどれか。
平24秋 問80】 ある在庫管理システムは、複数の入力を同時並行して処理し、在庫数を更新しているが、排他制御は行っていない。ある時点での在庫数が100であったとき、入力された二つの入力A、Bに応じて、図に示す処理が① → ② → ③ → ④の順序で実行された場合、処理④が終了した時点の在庫数は幾つになるか。
平23春 問78】 データベースのトランザクション処理に関する次の記述中の a、b に入れる字句の適切な組合せはどれか。 複数のユーザが同時に同じデータを更新しようとしたとき、データの整合性を保つために、そのデータへのアクセスを一時的に制限する仕組みを [  a  ] という。
平22春 問82】 2台のPCから一つのファイルを並行して更新した。ファイル中の同一データ(データ1)に対する処理が①~④の順に行われたとき、データ1はどの値になるか。
平21秋 問88】 複数の利用者が同時にデータベースを利用する場合に、1人の利用者がデータ更新中に、同一のデータを別の利用者が参照しようとした。
平21春 問82】 データDを更新する二つの処理A、Bが、①→③→②→④のタイミングで実行された場合、Dの値は幾らになるか。ここで、Dの初期値は2とする。

▼ 基本情報技術者試験
令4修1 問29】 DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
令1修7 問30】 DBMSの排他制御に関する記述のうち,適切なものはどれか。
平29修1 問30】 DBMSの排他制御に関する記述のうち,適切なものはどれか。
平28春 問30】 DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
平27修6 問29】 DBMSの排他制御に関する記述のうち,適切なものはどれか。
平26修1 問34】 データベースシステムにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
平25修12 問33】 DBMSの排他制御に関する記述のうち,適切なものはどれか。
平24修12 問34】 DBMSの排他制御機能に関する記述のうち,適切なものはどれか。
平24春 問33】 DBMSの排他制御に関する記述のうち,適切なものはどれか。
平24修1 問33】 データベースの排他制御に関する記述のうち,適切なものはどれか。
平23修12 問33】 データベースシステムにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
平22修7 問35】 データベースの排他制御に関する記述のうち,適切なものはどれか。
平22修6 問34】 データベースシステムにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
平22春 問32】 DBMSにおいて,同じデータを複数のプログラムが同時に更新しようとしたときに,データの矛盾が起きないようにするための仕組みはどれか。
平22修1 問33】 DBMSの排他制御機能に関する記述のうち,適切なものはどれか。