ITパスポート 平成21年度 春期 問82
データベース
排他制御に関する問題
データ D を更新する二つの処理 A,B が,① → ③ → ② → ④ のタイミングで実行された場合,D の値は幾らになるか。ここで,D の初期値は 2 とする。
〔処理A の処理内容〕 ① D を読み込み,3 倍する。 ② ①の結果を,D に書き込む。 〔処理B の処理内容〕 ③ D を読み込み,5 を加える。 ④ ③の結果を,D に書き込む。 実行タイミング(時間の流れ)… ① → ③ → ② → ④
- ア 6
- イ 7
- ウ 11
- エ 21
答えと解説
✓ これが正解イ 7
解説
読んだ時点の値を、それぞれが手元に持ったまま進みます。
排他制御が働いていない場では、二つの処理が同じ場所を代わる代わる読み書きします。はじめの値は二で、片方は三倍し、もう片方は五を足す決まりです。最初に前の処理が二を読んで手元で六を作りますが、まだ書き戻していないので、元の場所は二のままです。次に後ろの処理も二を読み、七という値を作ります。それから前の処理が六を書き込み、その後に後ろが七を書き込みます。だから最後に残るのは七で、その値を挙げた選択肢が正解です。六は前の処理が書いた値で止まった形で、十一は二つが順に走ったと考えた値、二十一は順序を逆にして走らせた値です。先に書いた六が消える形を更新の喪失と呼び、読んでから書くまでの間に割り込まれたのが原因です。
ほかの選択肢の解説
- ア 6:六は前の処理が書いた値で、確かに一度はその値が場所に入ります。ところが後ろの処理がその上へ七を書くので、最後に残るのはあとから書いたほうです。
- ウ 11:十一は、二を三倍して五を足した値で、二つが順に走ったと考えればこの数になります。ただ、後ろの処理が読んだのは六ではなく二で、読んだ時点ではまだ書き戻されていません。
- エ 21:二十一は、二に五を足して三倍した値で、順序を入れ替えて走らせればこの数になります。けれども実際には前の処理が先に読んでおり、読む順も書く順も示された並びのとおりです。
関連用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。
出典:平成21年度 春期 ITパスポート試験 問82(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和元年度 秋期 (特別措置試験) 問64:
排他制御の 目的 (排他制御) - 令和6年度 問74:
トランザクション 処理に 関する 記述 (排他制御) - 令和5年度 問66:
コミットの 説明 (排他制御) - 令和2年度 10月 (特別措置試験) 問64:
DBMSに 関する 問題 (排他制御) - 令和元年度 秋期 (特別措置試験) 問87:
関係 データベースに 関する 問題 (排他制御)
同じ分野の問題
誤りを見つけたら報告する