令和2年度 ITパスポート試験 問72
テクノロジ/データベース2台の PC から一つのファイルを並行して更新した。ファイル中のデータ n に対する処理が①~④の順に行われたとき,データ n は最後にどの値になるか。ここで,データ n の初期値は10であった。

出典:令和2年度 ITパスポート試験 問72
- ア5
- イ10
- ウ12
- エ17
正解:エ
解説
処理①で PC-A がデータ n(10)を読み込み,続く処理②で PC-B も同じデータ n(まだ10)を読み込みます。③で PC-A が 10-5=5 を書き込み,最後の④で PC-B が 10+7=17 を書き込みます。④は③の結果ではなく古い値10をもとにした結果なので,PC-A の更新が上書きされて消え,最終的な値は 17 になります。このような同時更新による矛盾を防ぐために,排他制御(ロック)を行います。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- ア誤り。5 は PC-A の書込み結果ですが,その後 PC-B の書込みによって上書きされます。
- イ誤り。10 は初期値であり,両方の処理で更新が行われるので最後の値にはなりません。
- ウ誤り。12 は 10-5+7 のように両方の更新を正しく反映した値ですが,同時更新では片方の結果が上書きされるため,この値にはなりません。
- エ正しい。最後に書き込むのは PC-B で,読み込んだ値10に7を足した 17 が最終値です。