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

午前問31

各タスクがタスク間共有変数を更新するときに,タスク間の同期制御を行わないと思わぬ結果を招くことがある。タスク間共有変数xの初期値が3のとき,タスクAが 式x=x+x を実行し,タスクBが 式x=x×x を実行すると,最終的なxの値が12となるのは,どの順番で実行が行われたときか。ここで,各式はそれぞれ次の四つの部分に分けられて処理される。
31.gif/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になるものを見つけます。
    • a1:e←3
    • a2:f←3
    • b1:h←3
    • b2:i←3
    • a3:3+3=6,g←6
    • a4:x←6
    • b3:3×3=9,j←9
    • b4:x←9
    以上の流れで、xは9になります。
  • 正しい。
    • a1:e←3
    • b1:h←3
    • b2:i←3
    • b3:3×3=9,j←9
    • b4:x←9
    • a2:f←9
    • a3:3+9=12,g←12
    • a4:x←12
    以上の流れで、xは12になります。
    • b1:h←3
    • a1:e←3
    • a2:f←3
    • a3:3+3=6、g←6
    • a4:x←6
    • b2:i←6
    • b3:3×6=18,j←18
    • b4:x←18
    以上の流れで、xは18になります。
    • b1:h←3
    • b2:i←3
    • b3:3×3=9,j←9
    • a1:e←3
    • a2:f←3
    • a3:3+3=6,g←6
    • a4:x←6
    • b4:x←9
    以上の流れで、xは9になります。
© 2010-2019 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop