ITパスポート 平成22年度 春期 問82
データベース
排他制御に関する問題
2 台の PC から一つのファイルを並行して更新した。ファイル中の同一データ(データ 1)に対する処理が ① 〜 ④ の順に行われたとき,データ 1 はどの値になるか。ここで,データ 1 の初期値は 5 であった。
〔図〕2 台の PC とファイルの関係(処理内容を字に書き起こしたもの)
PC−A 【処理内容】 ① データ1を読み込み,10 を足す。 ③ ①の結果を,データ1に書き込む。 PC−B 【処理内容】 ② データ1を読み込み,1 を引く。 ④ ②の結果を,データ1に書き込む。 中央のファイルに「データ1」があり、両方の PC が読み書きする。 処理はまる数字の順(① → ② → ③ → ④)に行われる。
- ア 4
- イ 5
- ウ 14
- エ 15
答えと解説
✓ これが正解ア 4
解説
読み込んだ時の値をもとに書くので、先の足し算が消えます。
一つの記録を、二台の機械が同時に書き換える場面です。初めの値は五で、四つの操作が順に進みます。一つ目の機械が読み、十を足して十五を手元に持ちますが、記録そのものはまだ五のままです。次に二つ目の機械も読みますが、そこも五のままなので、一を引いて四を手元に持ちます。三つ目の操作で一つ目の機械が十五を書き込み、続く四つ目で二つ目の機械が四を書き込みます。後から書いたほうが残るので答えは四になり、先の足し算は消えます。この数を挙げた選択肢が正解です。両方が反映されると考えると十四という数が出ますが、二つ目の機械は足した後の値を見ていません。三つ目で止めると十五という数になります。これを防ぐのが排他制御で、読んだ側を待たせます。シラバスも、この仕組みを項目として置いています。
ほかの選択肢の解説
- イ 5:五という数を挙げた選択肢で、何も起きなかったと考えた形です。ところが書き込みは二度とも行われ、値は途中で十五になり、次に四へ変わります。初めの値は残らず、動いた後の値になります。
- ウ 14:十四という数を挙げた選択肢で、十を足し一を引いた結果、つまり両方の書き換えが届いたと考えた形です。けれども二つ目の機械が読んだのは初めの値なので、足した分は伝わりません。
- エ 15:十五という数を挙げた選択肢で、三つ目の操作までで止めた形です。確かにその時点では記録は十五ですが、後に四つ目の書き込みが控えていて上書きされます。数える手前で止まった形で、操作の順が影響しています。
関連用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。
出典:平成22年度 春期 ITパスポート試験 問82(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和元年度 秋期 (特別措置試験) 問64:
排他制御の 目的 (排他制御) - 令和6年度 問74:
トランザクション 処理に 関する 記述 (排他制御) - 令和5年度 問66:
コミットの 説明 (排他制御) - 令和2年度 10月 (特別措置試験) 問64:
DBMSに 関する 問題 (排他制御) - 令和元年度 秋期 (特別措置試験) 問87:
関係 データベースに 関する 問題 (排他制御)
同じ分野の問題
誤りを見つけたら報告する