基本情報暗記無料で始める

2相ロッキングプロトコルとは?にそうろっきんぐぷろとこる

2相ロッキングプロトコルとは、トランザクションが使うロックを、取得だけを行う成長(拡張)相と、解放だけを行う縮退相の2段階に分ける排他制御の規則。1つでもロックを外したら以後は新たに取らない、という決まりを全員が守ることで、同時に動かしても直列に実行したのと同じ結果を保証する。

最終更新:2026-10-09

試験情報

基本情報技術者試験の過去問では1回出題されています。

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

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

背景

複数の処理が同じデータを同時に読み書きすると、片方の更新が消えたり、途中の値を読んでしまう。ロックをかければ防げるが、いつ外してよいかを各処理が勝手に決めると、外した後に別のロックを取る処理が現れて順序が崩れる。取得と解放を時間で分ける約束を守れば、その崩れが原理的に起きない。データベースの同時実行制御の基本として出題される。

具体例

口座間の振込みでは、出金元と入金先の両方のロックを先に取り切ってから金額を書き換え、書き終えてからまとめて解放する。取りながら外す動きを許すと、別の処理が出金後・入金前の残高を読み、合計が合わない状態を見てしまう。MySQLのInnoDBやPostgreSQLもロックによる同時実行制御を備えている。

試験での引っ掛け

名前が似た2相コミットは分散データベースで更新を確定させる手順であり、こちらは同時実行制御の規則。直列化可能性は保証するがデッドロックは防げない点が最大の的。先に来るのが取得だけの成長相、後が解放だけの縮退相で、順序も逆にしない。

関連用語

出た過去問

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

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

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • 名前が似た2相コミットは分散データベースで更新を確定させる手順であり、こちらは同時実行制御の規則。