基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [平成31年春午前] [平成31年春午後]

平成14年 春期 基本情報技術者 午前 問31
問31   タスクの実行の順番

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

タスクA( x x x の文)
a1  x の値を参照し e とする。
a2  x の値を参照し f とする。
a3  e f を計算し g とする。
a4  g によって x の値を更新する。
  
タスクB( x x × x の文)
b1  x の値を参照し h とする。
b2  x の値を参照し i とする。
b3  h × i を計算し j とする。
b4  j によって x の値を更新する。
ア 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のとき、以下のようになる。

 ア   a1
e=3;
a2
f=3;
b1
h=3;
b2
i=3;
a3
e+f→g(6);
a4
x=6;
b3
h×i→j(9);
b4
x=9;
    a1
e=3;
b1
h=3;
b2
i=3;
b3
h×i→j(9)
b4
x=9;
a2
f=9;
a3
e+f→g(12)
a4
x=12;
 ウ   b1
h=3;
a1
e=3;
a2
f=3;
a3
e+f→g(6)
a4
x=6;
b2
i=6;
b3
h×i→j(18)
b4
x=18;
 エ   b1
h=3;
b2
i=3;
b3
h×i→j(9)
a1
e=3;
a2
f=3;
a3
e+f→g(6)
a4
x=6;
b4
x=9;

[←前の問題] [次の問題→] [問題一覧表] [分野別] [キーワード索引] [基本情報技術者試験TOP ]