ITパスポート|データベース 問3
2台の PC から一つのファイルを並行して更新した。ファイル中のデータ n に対する処理が①~④の順に行われたとき、データ n は最後にどの値になるか。ここで、データ n の初期値は10であった。

正解:エ
解説
二つの PC が、相手の更新を待たずに同じデータを読み書きすると、先に書き込んだ結果が後の書込みで上書きされて消えてしまいます(ロストアップデート)。これを防ぐのが排他制御です。
- ①
- PC-A が 10 を読み込み、10 − 5 = 5 を計算
- ②
- PC-B が、まだ書き換わっていない 10 を読み込み、10 + 7 = 17 を計算
- ③
- PC-A が 5 を書き込む(n = 5)
- ④
- PC-B が 17 を書き込む(n = 17)。PC-A の更新は失われます。
- ア 5 は、PC-A の結果です。その後に PC-B が上書きします。
- ウ 12 は、両方の処理が正しく反映された場合(10 − 5 + 7)の値です。
- エ 正解。最後に書き込んだ PC-B の 17 になります。
出典:令和2年度 ITパスポート試験 公開問題 問72(読点「,」を「、」に改変)