平成22年度 春期 ITパスポート試験 問82
テクノロジ/データベース2 台の PC から一つのファイルを並行して更新した。ファイル中の同一データ(データ 1)に対する処理が①〜④の順に行われたとき,データ 1 はどの値になるか。ここで,データ 1 の初期値は 5 であった。 PC-A の処理内容:①データ 1 を読み込み,10 を足す。③①の結果を,データ 1 に書き込む。 PC-B の処理内容:②データ 1 を読み込み,1 を引く。④②の結果を,データ 1 に書き込む。

出典:平成22年度 春期 ITパスポート試験 問82
- ア4
- イ5
- ウ14
- エ15
正解:ア
解説
①で PC-A が 5 を読み,10 を足して 15。②で PC-B も(まだ書換え前の)5 を読み,1 を引いて 4。③で PC-A が 15 を書き込み,④で PC-B が 4 を書き込むので,最終的なデータ 1 は後から書いた 4 になります。PC-A の更新が失われており,このような不整合を防ぐために排他制御(ロック)を行います。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- ア正しい。最後に書き込んだ PC-B の結果 4 が残ります。
- イ誤り。初期値のままになることはありません。③と④で書込みが行われます。
- ウ誤り。5+10-1=14 となるのは,PC-A と PC-B の処理が順番に(排他制御されて)行われた場合です。並行して更新すると結果が変わります。
- エ誤り。15 は③の結果ですが,その後④で PC-B が書き込むため最終値にはなりません。