ITパスポート試験 ITパスポート 2013年 (平成25年 秋期) 問67: あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加算し,③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列

←
ITパスポート 2013年 (平成25年 秋期)
Q 6767 / 84
ある処理は,①共有領域から値を読み取り,②読み取った値に数値を加算し,③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列に矛盾なく処理するためには,トランザクション処理のどの時点で共有領域をロックし,どの時点でロックを解除するのが適切か。 時間順: 時点(a) ① 共有領域から値を読み取り 時点(b) ② 読み取った値に数値を加算 時点(c) ③ 結果を共有領域に書き込む 時点(d)
共有領域のロック共有領域のロック解除
ア時点(a)時点(c)
イ時点(a)時点(d)
ウ時点(b)時点(c)
エ時点(b)時点(d)
この問の正解率:82.08%(1,049件)

解説

ITパスポート 2013年 (平成25年 秋期) 問67「あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約82%です。

正解

イ. ロック:時点(a), 解除:時点(d)

正答率 82.1%(1,049人中 861人が正解)

問題の解説

複数のトランザクションが共有領域を読み書きするとき、他のトランザクションが途中で同じ値を読んだり書き換えたりすると、更新が失われる矛盾が起きる。これを防ぐには、最初の読取りの前に共有領域をロックし、最後の書込みが終わってから解除して、読取り・加算・書込みの一連の処理に他のトランザクションを割り込ませないようにする。

選択肢ごとの解説

  • アロックは適切だが、解除が書込みの前になっている。書込みが終わる前に他のトランザクションが古い値を読めてしまい、更新が失われる。
  • イ正しい。読取りの前にロックし、書込みが終わってから解除すれば、読取り・加算・書込みが一連の処理として守られ、他のトランザクションに割り込まれない。
  • ウロックが読取りの後で、解除も書込みの前になっている。読取りも書込みも保護されず、更新が失われるおそれがある。
  • エ解除は適切だが、ロックが読取りの後になっている。ロックの前に他のトランザクションが同じ値を読めるため、更新が失われるおそれがある。

ITパスポート 2013年 (平成25年 秋期) の過去問一覧に戻る・問67

ITパスポート試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

ITパスポート試験 合格.dev を App Store でダウンロード