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

正答2
解説
正解は2です。 同時に実行された更新処理で、更新が失われる現象(ロストアップデート)を問う問題です。 図では、閲覧者1の処理が「①カウンタを読み込み1を加算」「③処理①の結果を書き込む」です。 閲覧者2の処理が「②カウンタを読み込み1を加算」「④処理②の結果を書き込む」です。 処理は①、②、③、④の順に実行されます。 【処理の流れ】 処理①で、閲覧者1の処理はカウンタの値100を読み込み、1を加えて101を得ます。 処理②で、閲覧者2の処理も、まだ書き込まれていない値100を読み込み、101を得ます。 処理③で、閲覧者1の処理が101をカウンタに書き込みます。 処理④で、閲覧者2の処理も101をカウンタに書き込みます。 したがって、処理④の終了時点のカウンタの値は101です。 【選択肢別解説】 1:× 処理③と処理④で101が書き込まれるため、値は100のままにはなりません。 加算した結果は少なくとも一度は反映されます。 2:○ 二つの処理がどちらも書込み前の100を読み込んだため、両方とも101を書き込みます。 閲覧者1の加算が閲覧者2の書込みで上書きされ、値は101になります。 3:× 102になるのは、閲覧者1の書込みが済んでから閲覧者2が読み込むように、処理が順番に実行された場合です。 この図の順序では、片方の加算が失われます。 4:× 104は、四つの処理それぞれで1を加えたと誤解した値です。 加算をするのは処理①と処理②だけで、③と④は書込みだけです。 【ポイント】 読み込みから書込みまでの間に他の処理が割り込むと、更新が失われます。 これを防ぐには、カウンタを読み込む前にロック(排他制御)をかけ、書込みが終わってから解除します。まとめて解く
修了試験 2025-01-26実施分を通しで解く(60問)→