排他制御 | 応用情報技術者試験
排他制御とは
排他制御とは、複数のプロセスやスレッドが、ファイルやデータベースなどの共通の資源(共有データ)に対して同時にアクセスした際に、データの不整合(矛盾)が発生しないようにする仕組みです。あるプロセスが共有データを書き換えている間、他のプロセスが যত্নデータを書き換えたり読み込んだりできないように「ロック(鍵)」をかけ、処理が終わったらロックを解除します。これに関連する概念として「セマフォ」などがあります。
具体例
- ホテルの予約システム:空室が残り1室の状態で、AさんとBさんが同時に「予約する」ボタンを押したとします。排他制御がないと、システムが同時に2人の予約を受け付けてしまい、ダブルブッキングが発生します。排他制御があれば、先に処理が始まったAさんのために一時的にその部屋をロックし、Bさんの処理は「予約失敗」または「待ち状態」にしてデータの矛盾を防ぎます。
- 共同編集ファイル:共有サーバー上のExcelファイルを編集する際、誰かが開いていると「編集中のため読み取り専用で開きます」と表示され、同時に上書きできないようになるのも排他制御の一種です。
もう少し詳しく