データベース
基本情報技術者試験 科目A免除 修了試験 200912 実施分 問34
Web ページへのアクセス件数を調べる目的でアクセスカウンタを作成した。図に示すとおり,2 人の閲覧者が同時にアクセスしたところ,サーバ内の処理は①~④の順序で実行された。2 人がアクセスする前のアクセスカウンタの値が 100 であったとすると,処理④が終了した時点のアクセスカウンタの値は幾らになるか。
閲覧者 1 と閲覧者 2 がインターネットを経由してサーバにアクセスする。サーバ内の〔処理内容〕:
① アクセスカウンタを読み込み,1 を加算する
③ アクセスカウンタに処理①の結果を書き込む
(以上が閲覧者 1 の処理)
② アクセスカウンタを読み込み,1 を加算する
④ アクセスカウンタに処理②の結果を書き込む
(以上が閲覧者 2 の処理)
サーバ内のデータベース(円筒)に「アクセスカウンタ」があり,各処理が読込み・書込みの矢印で接続されている。
- ア 100
- イ 101
- ウ 102
- エ 104
出典:基本情報技術者試験 科目A免除 修了試験 200912 実施分 問34
答えと解説を見る
正解:イ
覚える知識
排他制御の目的(同時更新の矛盾防止)
排他制御は、複数処理が同じデータを同時に更新して矛盾が起きるのを防ぐための制御である。
この問題で必要なこと
排他制御がないと、両者が100を読み込み、それぞれ101を書き込むため、結果は102でなく101になる(更新の消失)。
ひっかけ
2人分の加算を足して102と考えるが、読込み時点が同じなのでどちらも101を書き込む。
この知識の出題:本試験系 3 回・免除試験 12 回(公開問題での観測値)