同時更新の衝突を調整する
- 両方の更新を反映した正しい結果を確認する
- 古い値による判断を防ぐ排他制御の手順を選ぶ
- デッドロックを通常の待ちと区別し、予防や解消を説明する
点線のことばを押すと、意味と使い方を調べられます。
表示・保存
このページの目次 3節・復習と3問
- 1説明を読む
- 2復習する
- 3問題を解く
- 4次へ進む
1同じ残高を同時に読むと
残高10,000円をAとBが同時に読んだ例を考える。Aは1,000円減らして9,000円を書き、Bは古い10,000円から2,000円減らして8,000円を書くと、Aの更新が消える。正しくは合計3,000円減って7,000円だ。
同時実行制御は、こうした食い違いを防ぎながら複数の処理を進める仕組み。単に処理を高速化するだけでは解決しない。どのデータをいつ読んで更新するかを調整する必要がある。
ハルとビットで、使い方を確かめよう
残高を速く保存すれば大丈夫?
古い値を読んでいる問題は残るよ。更新の順序を調整しよう。
2ロックで対象を保護する
排他制御は、一つの処理が更新中のデータに対して、競合する他の処理のアクセスを制限する仕組み。ロックはそのための制御の手段。Aの更新が終わるまでBを待たせれば、Bは更新後の9,000円を読んで7,000円にできる。
読取り同士は共存できるなど、実際の制御はロックの種類・粒度・方式による。表全体を常に一人しか使えなくする、と決めつけない。ロックはアクセスの調整、コミットは確定、ロールバックは取消しだ。
3互いの解放待ちを解消する
デッドロックは、複数の処理が互いに相手の持つ資源の解放を待ち、進めなくなる状態。Aが商品XをロックしてYを待ち、BがYをロックしてXを待つと循環になる。単に一方が待っているだけとは違う。
対策には、資源を取る順序を統一して予防する、循環を検知して一方を取り消し再実行するなどがある。チェックポイントやバックアップは障害回復の仕組みで、待合せの循環そのものを解消する操作ではない。
AはBが持つY、BはAが持つXの解放を待ち、どちらも進めません。矢印はデータの流れではなく「相手の資源解放を待つ」関係を示します。
ハルとビットで、使い方を確かめよう
待つこと全部がデッドロック?
互いの解放待ちが循環して進めない状態をいうよ。
復習
このレッスンを振り返ろう
同じ10,000円を元に二つの引落し結果を上書きすると何が起こりますか。
答え方と、確認するポイント
一方の更新が失われることがあります。1,000円と2,000円の両方を反映した7,000円になるよう、読取りと更新の順序を調整します。
保存だけを順番にすれば、古い残席を二人が使う問題は解決しますか。
答え方と、確認するポイント
古い値を読んで判断する問題が残ります。競合する確認と更新を保護し、次の処理が更新後の値を確認するようにします。
AとBが互いの資源を待つ状態をどう予防しますか。
答え方と、確認するポイント
資源を取得する順序を統一して循環を作らないようにします。起きた循環を検知して一方を取り消し、再実行する解消策もあります。
問題で確かめる
学んだことを問題で確かめよう
入門の確認問題3問で、この範囲の考え方を使います。答えを選んだら、正解の理由とほかの選択肢の違いも確かめましょう。
ヒントを見る
二つの引出額の両方を、元の残高から差し引きましょう。
オリジナル入門問題 · シラバス 6.5
3問中0問の答えと解説を確認しました。選んだ答えの理由も確かめてから、次へ進みましょう。
出典・参考資料を確認する
学習範囲:IPA シラバス Ver.6.5 ↗ 項目57。身近な例・会話・図解・確認問題は当サイトのオリジナルです。
学習範囲と参考資料
シラバスは学習範囲の根拠です。説明は参考資料を基に当サイトが作成しています。身近な事例・会話・図の数値は学習用の架空例です。2026年9月10日確認。