必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 基本情報技術者
  3. 平成17年度秋季問題一覧
  4. 平成17年度秋季問題29-解答・解説-分析

平成17年度秋季問題

問題29

各タスクがタスク間共有変数を更新するときに、タスク間の同期制御を行わないと思わぬ結果を招くことがある。タスク間共有変数 x の初期値が3のとき、タスク A が代入文 x = x + x を実行し、タスク B が代入文 x = x × x を実行すると、最終的な x の値が 12 となるのは、どの順番で実行されたときか。ここで、各代入文はそれぞれ次の四つの部分に分けて処理される。

a1 → a2 → b1 → b2 → a3 → a4 → b3 → b4
a1 → b1 → b2 → b3 → b4 → a2 → a3 → a4
b1 → a1 → a2 → a3 → a4 → b2 → b3 → b4
b1 → b2 → b3 → a1 → a2 → a3 → a4 → b4

各タスクがタスク間共有変数を更新するときに、タスク間の同期制御を行わないと思わぬ結果を招くことがある。タスク間共有変数 x の初期値が3のとき、タスク A が代入文 x = x + x を実行し、タスク B が代入文 x = x × x を実行すると、最終的な x の値が 12 となるのは、どの順番で実行されたときか。ここで、各代入文はそれぞれ次の四つの部分に分けて処理される。

a1 → a2 → b1 → b2 → a3 → a4 → b3 → b4
a1 → b1 → b2 → b3 → b4 → a2 → a3 → a4
b1 → a1 → a2 → a3 → a4 → b2 → b3 → b4
b1 → b2 → b3 → a1 → a2 → a3 → a4 → b4

解答:イ

<解説>

下図よりイが正解である。