データベース
基本情報技術者試験 科目A免除 修了試験 20200126 実施分 問28
Web ページへのアクセス件数を調べる目的でアクセスカウンタを作成した。図に示すとおり,2 人の閲覧者が同時にアクセスしたところ,サーバ内の処理は①~④の順序で実行された。2 人がアクセスする前のアクセスカウンタの値が 100 であったとすると,処理④が終了した時点のアクセスカウンタの値は幾らになるか。
閲覧者 1,閲覧者 2 がインターネット経由でサーバにアクセスする。サーバ内に 2 組の処理ブロックと,データベース内の「アクセスカウンタ」がある。
閲覧者 1 の〔処理内容〕: ① アクセスカウンタを読み込み,1 を加算する / ③ アクセスカウンタに処理①の結果を書き込む
閲覧者 2 の〔処理内容〕: ② アクセスカウンタを読み込み,1 を加算する / ④ アクセスカウンタに処理②の結果を書き込む
処理ブロックとアクセスカウンタの間は,読込み・書込みの矢印で結ばれる。
- ア 100
- イ 101
- ウ 102
- エ 104
出典:基本情報技術者試験 科目A免除 修了試験 20200126 実施分 問28
答えと解説を見る
正解:イ
覚える知識
排他制御なし共有変数更新の実行順序トレース
排他制御がないと同時更新で一方の更新が失われる。
この問題で必要なこと
両者が100を読み込み1加算し101を書き込むため、最終値は101(更新消失)。
ひっかけ
2回の加算で102になると考えさせる。
この知識の出題:本試験系 0 回・免除試験 10 回(公開問題での観測値)