過去問ぽちぽちby KKM Studio

平成25年度秋期 ITパスポート 問67 解説

あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加算し,③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列に矛盾なく処理するためには,トランザクション処理のどの時点で共有領域をロックし,どの時点でロックを解除するのが適切か。

平成25年度秋期 問67 図1
  1. ア共有領域のロック:時点(a) 共有領域のロック解除:時点(c)
  2. イ共有領域のロック:時点(a) 共有領域のロック解除:時点(d)
  3. ウ共有領域のロック:時点(b) 共有領域のロック解除:時点(c)
  4. エ共有領域のロック:時点(b) 共有領域のロック解除:時点(d)
答えを見る

正解 イ共有領域のロック:時点(a) 共有領域のロック解除:時点(d)

要点排他制御は読取り前にロックし書込み後に解除する

解説

複数のトランザクションが同じ値を読んで同時に更新すると、一方の更新が失われてしまいます。これを防ぐには、①で読み取る前の時点(a)でロックし、③で書き込んだ後の時点(d)で解除して、読取りから書込みまでの間ほかのトランザクションが割り込めないようにします。

  • ア:時点(c)で解除すると、書込み前にほかのトランザクションが古い値を読めてしまうので誤り。
  • ウ、エ:時点(b)でロックすると、ロック前に読み取った値が書き込みまでに変わる可能性があるので誤り。
App

スキマ時間に、1問ずつ。
アプリ「ITパスポート 過去問ぽちぽち」

全問を正答・解説つきで収録。毎日の10問に、忘れた頃の復習が自然に混ざります。広告なし・買い切り。

App Store近日公開Google Play近日公開