平成18年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−19
2つのオブジェクト a と b、2つのトランザクション T1とT2を考える。
トランザクション開始前の a と b の値はいずれも0とする。
 T1: l[a]; r[a,x]; x=x-8; w[a,x]; u[a]; l[b]; l[a];
   r[a,x]; y=x+2; w[b,y]; u[b]; u[a]
 T2: l[a]; r[a,s]; s=s+3; l[b]; w[a,s]; t=s+3; w[b,t]; u[a]; u[b]
T1 と T2 を並列処理した場合に考えられる最終結果の中で、正しいものを
次の中から選べ。ここで、各トランザクションのセミコロンで区切られた各命令は、
左から順に実行が開始される。l[x]は x の排他ロック、u[x]は x のロック解除、
r[c, v]は c の値を変数 v に代入、w[c,v]は v の値を c に格納とする。
各命令は一定時間内に開始されて、一定時間内に処理が終了する。
一定時間内に開始または終了できないトランザクションが1つ以上あれば、
どれか1つをアボートして、そのトランザクションのすべてのロック済みの
オブジェクトのロックを解除して終了し、他のトランザクションを続行させる。

 @ (a=-5, b=-3) または (a=-5, b=-2)
 A (a=-5, b=-2) または (a=-8, b=-2)
 B (a=-5, b=-3) または (a=-5, b=-2) または (a=-8, b=-6)
 C (a=-5, b=-3) または (a=-8, b=-2) または (a=-8, b=-3)
 D (a=-5, b=-3) または (a=-5, b=-2) または (a=-8, b=-2)



【正解】 B

オブジェクト a と bがそれぞれ排他ロックされた後、解放されるまでの
処理単位で考える。
便宜上、以下の通り番号をつける。
l[a]; r[a,x]; x=x-8; w[a,x]; u[a]; ・・・(1)
l[b]; l[a]; r[a,x]; y=x+2; w[b,y]; u[b]; u[a] ・・・(2)
l[a]; r[a,s]; s=s+3;  ・・・(3)
l[b]; w[a,s]; t=s+3; w[b,t]; u[a]; u[b] ・・・(4)

トランザクション T1, T2 が並列処理されるため
どちらが先に処理されるかは判らないので、考えられる処理手順を
しらみつぶしに考える。

(1) → (2) → (3) → (4)の場合
(a,b),
(x,y), (s,t) がそれぞれ
(1)により (-8,0),
(-8,0), (0,0) となり
(2)により (-8,-6),
(-8,-6), (0,0) となり
(3)により (-5,-6),
(-8,-6), (-5,0) となり
(4)により
(-5, -2), (-8,-6), (-5,-2) となる。

(1) → (3) → (2) → (4)の場合
(a,b), (x,y), (s,t) がそれぞれ
(1)により (-8,0), (-8,0), (0,0) となり
(3)により (-8,0), (-8,0), (-5,0) となり
(2)により l[a]で処理待ちとなる。
(ア)T1をアボートした場合
 (4)により
(-5,-2), (-8,0), (-5,-2) となる。
(イ)T2をアボートした場合
 (2)により
(-8,-6), (-8,-6), (-5,0) となる。

この時点で選択肢はBに絞ることができる。

(1) → (3) → (4) → (2)の場合
(a,b), (x,y), (s,t) がそれぞれ
(1)により (-8,0), (-8,0), (0,0) となり
(3)により (-8,0), (-8,0), (-5,0) となり
(4)により (-5,-2), (-8,0), (-5,-2) となり
(2)により (-5,-3), (-5,-3), (-5,-2) となる。

(3) → (4) → (1) → (2)の場合
(a,b), (x,y), (s,t) がそれぞれ
(3)により (0,0), (0,0), (3,0) となり
(4)により (3,6), (0,0), (3,6) となり
(1)により (-5,6), (-5,0), (3,6) となり
(2)により (-5,-3), (-5,-3), (3,6) となる。

(3) → (1) はオブジェクト a がロックされている。
ため処理できない。
(ア)T1をアボートした場合
 (3)により (0,0), (0,0), (3,0) となり
 (4)により
(3,6), (0,0), (3,6) となる。
(イ)T2をアボートした場合
 (1)により (-8,0),
(-8,0), (0,0) となり
 (2)により
(-8,-6), (-8,-6), (0,0) となる。


※選択肢には (a=3, b=6) も必要。


【類題】
H24 W-16


EXCELのマクロのご相談なら ファーストマクロ 



W−18 目次 W−20
ファーストマクロ TOPページ