過去問解きまくり研究所 ホーム

ITパスポート 平成21年度 春期 問82

データベース

排他制御に関する問題

データ D を更新する二つの処理 A,B が,① → ③ → ② → ④ のタイミングで実行された場合,D の値は幾らになるか。ここで,D の初期値は 2 とする。

〔処理A の処理内容〕
 ① D を読み込み,3 倍する。
 ② ①の結果を,D に書き込む。

〔処理B の処理内容〕
 ③ D を読み込み,5 を加える。
 ④ ③の結果を,D に書き込む。

実行タイミング(時間の流れ)… ① → ③ → ② → ④
答えと解説

✓ これが正解イ 7

解説

読んだ時点の値を、それぞれが手元に持ったまま進みます。

排他制御が働いていない場では、二つの処理が同じ場所を代わる代わる読み書きします。はじめの値は二で、片方は三倍し、もう片方は五を足す決まりです。最初に前の処理が二を読んで手元で六を作りますが、まだ書き戻していないので、元の場所は二のままです。次に後ろの処理も二を読み、七という値を作ります。それから前の処理が六を書き込み、その後に後ろが七を書き込みます。だから最後に残るのは七で、その値を挙げた選択肢が正解です。六は前の処理が書いた値で止まった形で、十一は二つが順に走ったと考えた値、二十一は順序を逆にして走らせた値です。先に書いた六が消える形を更新の喪失と呼び、読んでから書くまでの間に割り込まれたのが原因です。

ほかの選択肢の解説

この分野を演習で解く この問題を記録に残す

関連用語

出典:平成21年度 春期 ITパスポート試験 問82(改変:原典の図表をテキストに書き起こした)

解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。

関連問題

同じ分野の問題

誤りを見つけたら報告する(メールが開きます)