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

平成17年 秋期 基本情報技術者 午前 問29
問29   タスクの順番

 各タスクがタスク間共有変数を更新するときに,タスク間の同期制御を 行わないと思わぬ結果を招くことがある。 タスク間共有変数 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;

【平成14年春 問31】


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