修了試験 2013-01-27実施分 基本情報技術者試験 問34
Webページへのアクセス件数を調べる目的でアクセスカウンタを作成した。 図に示すとおり,2人の閲覧者が同時にアクセスしたところ,サーバ内の処理は①~④の順序で実行された。 2人がアクセスする前のアクセスカウンタの値が100であったとすると,処理④が終了した時点のアクセスカウンタの値は幾らになるか。

正答2
解説
正解は2です。 図では、閲覧者1の処理が①読込みと加算、③書込みで、閲覧者2の処理が②読込みと加算、④書込みです。 これが①、②、③、④の順に実行されると、2人とも同じ値を読み込んでしまいます。 その結果、片方の更新が失われます。 【計算】 ①で閲覧者1の処理が100を読み込み、1を加えて101にします。 ②で閲覧者2の処理も、まだ更新されていない100を読み込み、1を加えて101にします。 ③で閲覧者1の処理が、カウンタに101を書き込みます。 ④で閲覧者2の処理も、カウンタに101を書き込みます。 最終的なカウンタの値は101です。 【選択肢別解説】 1:× 100のままになるのは、どちらの書込みも行われなかった場合です。 ③と④で101が書き込まれるので、100にはなりません。 2:○ 2人とも100を読み込んで101を書き込むので、値は101になります。 3:× 102になるのは、①③の後に②④が実行されるなど、処理が順番に行われた場合です。 今回は読込みが重なったので、1回分の加算が失われます。 4:× 104は、加算を4回行ったとみなした値です。 加算は①と②の2回だけです。 【ポイント】 同時更新で一方の更新が消える現象を、ロストアップデート(更新の喪失)といいます。 防ぐには、読込みから書込みまでの間カウンタをロックする排他制御が必要です。まとめて解く
修了試験 2013-01-27実施分を通しで解く(80問)→