it-kakomon › ITパスポート › 令和2年度 › 問72

令和2年度 ITパスポート 問72(テクノロジ)

出典:令和2年度 ITパスポート試験 公開問題 問72(独立行政法人情報処理推進機構(IPA))

2台のPCから一つのファイルを並行して更新した。ファイル中のデータnに対する処理が①~④の順に行われたとき,データnは最後にどの値になるか。ここで,データnの初期値は10であった。
  1. ア5
  2. イ10
  3. ウ12
  4. エ17
正解と解説を見る

正解:エ

【図の処理の流れ】

データnの初期値は10です。2台のPCが、次の順に処理を行いました。

・①PC-A:データnを読み込み(10)、5を引く(5)

・②PC-B:データnを読み込み(まだ10のまま)、7を足す(17)

・③PC-A:処理①の結果の5を、データnに書き込む(nは5)

・④PC-B:処理②の結果の17を、データnに書き込む(nは17)

最後に書き込まれた値が残るので、データnは17になります。

【何が問題か】

本来、2つの処理を順番に行えば、10 - 5 + 7 = 12 になるはずです。しかし、PC-Bは、PC-Aが書き込む前の古い値(10)を読み込んで計算したので、PC-Aの更新(5を引いた結果)が失われてしまいました。これを、更新の消失(ロストアップデート)といいます。防ぐには、あるPCがデータを更新している間、ほかのPCが読み書きできないようにする排他制御(ロック)を行います。

【選択肢の検討】

ア:5は、③でPC-Aが書き込んだ値ですが、その後に④でPC-Bが上書きします。

イ:10は、初期値です。

ウ:12は、2つの処理を順番に正しく行った場合の値です。

よって、正解は選択肢エです。

まず令和8年度の100問を通しで解いてみる(無料)