データベース

基本情報技術者試験 科目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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「トランザクションと排他制御(ロック・デッドロック)」で学ぶ

同じ知識の過去問