応用情報暗記無料で始める

排他制御とは?はいたせいぎょ

排他制御とは、複数のトランザクションやタスクが同じ資源へ同時にアクセスしても矛盾が生じないよう、ロックなどで更新を一度に1つへ限定する制御。ロックの粒度を粗くすれば安全だが並行度が落ち、細かくすれば並行度は上がるがデッドロックの危険が増すという設計上の綱引きがある。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では4問の解説で触れられています(2018年度〜2025年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:排他制御(共有ロックと専有ロック)

この語が出る過去問を解く →

背景

利用者が1人なら処理は順番に流れるので矛盾は起きないが、多重プログラミングと多数の同時接続が前提になると、読み取った値をもとに更新する間に他方が書き換える更新の喪失が現実に起きる。かといって全処理を直列に流せば、性能のために並行実行している意味がなくなる。整合性と並行度という相反する要求を、資源の粒度と待たせ方の設計で折り合わせるのが排他制御である。

具体例

Oracle DatabaseやPostgreSQLでは SELECT ... FOR UPDATE で行に専有ロックを取り、同じ行を更新しようとした側を待たせる。座席予約なら先に取得した側が確定するまで後続は待ち、確定後は満席として扱われる。行単位で取るか表単位で取るかが、待ち時間とデッドロックの起きやすさを左右する。

試験での引っ掛け

共有ロック(読み取り)は複数同時にかけられるが、専有ロック(更新)は1つしか取れず共有ロックとも両立しない、という組合せ表が頻出。互いに相手のロック解除を待つデッドロックは資源を取る順序を全体で統一すれば予防でき、検出時は一方をロールバックして解く。待たせずに更新時点で競合を検出する楽観的方式との対比も問われる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 4問の解説で触れられる(2018年度〜2025年度)
  • 分野:テクノロジ系
  • 共有ロック(読み取り)は複数同時にかけられるが、専有ロック(更新)は1つしか取れず共有ロックとも両立しない、という組合せ表が頻出。