基本情報技術者平成14年春期 午前問31

問31

各タスクがタスク間共有変数を更新するときに,タスク間の同期制御を行わないと思わぬ結果を招くことがある。タスク間共有変数xの初期値が3のとき,タスクAが 式x=x+x を実行し,タスクBが 式x=x×x を実行すると,最終的なxの値が12となるのは,どの順番で実行が行われたときか。ここで,各式はそれぞれ次の四つの部分に分けられて処理される。
31.png/image-size:473×137
  • 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
  • [出題歴]
  • 基本情報技術者 H17秋期 問29

分類

テクノロジ系 » ソフトウェア » オペレーティングシステム

正解

解説

xの初期値が3なので、それぞれの順番で実行して最終的にx=12になるものを見つけます。
    1. a1:e←3
    2. a2:f←3
    3. b1:h←3
    4. b2:i←3
    5. a3:3+3=6,g←6
    6. a4:x←6
    7. b3:3×3=9,j←9
    8. b4:x←9
    以上の流れで、xは9になります。
  • 正しい。
    1. a1:e←3
    2. b1:h←3
    3. b2:i←3
    4. b3:3×3=9,j←9
    5. b4:x←9
    6. a2:f←9
    7. a3:3+9=12,g←12
    8. a4:x←12
    以上の流れで、xは12になります。
    1. b1:h←3
    2. a1:e←3
    3. a2:f←3
    4. a3:3+3=6、g←6
    5. a4:x←6
    6. b2:i←6
    7. b3:3×6=18,j←18
    8. b4:x←18
    以上の流れで、xは18になります。
    1. b1:h←3
    2. b2:i←3
    3. b3:3×3=9,j←9
    4. a1:e←3
    5. a2:f←3
    6. a3:3+3=6,g←6
    7. a4:x←6
    8. b4:x←9
    以上の流れで、xは9になります。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop