平成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
]
©2004-2024 情報処理試験.jp
|
|
|