SLIDE 1
t rt tt - - PowerPoint PPT Presentation
t rt tt - - PowerPoint PPT Presentation
t rt tt r r r r strt trt
SLIDE 2
SLIDE 3
❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❝❤❛♥♥❡❧✿ ♦✈❡r✈✐❡✇
❱❛rs✿
active ✢❛❣ ❢♦r ❡✈❡r② ❛❞❞r j txh ❛♥❞ rxh ❢♦r ❡✈❡r② j,k
✐♥♣✉t j.tx(k, msg) ❛❧❧♦✇❡❞ ♦♥❧② ✐❢ j ❛❝t✐✈❡❀ s❡♥❞ msg✱ ✉♣❞❛t❡ txh ✐♥♣✉t j.rx() r❝✈ ♠s❣ ❢r♦♠ ❛♥② k❀ s❡t j ❛❝t✐✈❡ ✐♥♣✉t j.inactive() ❛❧❧♦✇❡❞ ♦♥❧② ✐❢ j ❛❝t✐✈❡❀ s❡t j ✐♥❛❝t✐✈❡ ✐♥♣✉t a0.isTerminated() r❡t✉r♥ ♦♥❧② ✐❢ j ✐♥❛❝t✐✈❡ ❛♥❞ t①❤ ❡q✉❛❧s r①❤ ❢♦r ❡✈❡r② j,k
SLIDE 4
❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❝❤❛♥♥❡❧ ✕ ✶
❙❡r✈✐❝❡ TdChannel ( ADDR, a0, initActive )
initActive✿ ✐♥✐t✐❛❧❧② ❛❝t✐✈❡ ❛❞❞r❡ss❡s
▼❛✐♥
txhj,k ← []
✴✴ t① ❤✐st♦r② ❛t j t♦ k
rxhj,k ← []
✴✴ r① ❤✐st♦r② ❛t k ❢r♦♠ j
activej ← j ✐♥ initActive
✴✴ ❛❝t✐✈❡ st❛t✉s ❛t j
vj ← sid()
✴✴ ❛❝❝❡ss s②st❡♠ ❛t j
return {vj}
✴✴ s✐❞ ♠❛♣ ♦✈❡r ADDR ❍❡❧♣❡r ❢✉♥❝t✐♦♥ terminated():
forall(j: not activej)
❛♥❞
forall(j,k: txhj,k = rxhj,k)
SLIDE 5
❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❝❤❛♥♥❡❧ ✕ ✷
✐♥♣✉t vj.tx(k,msg) ✐❝ ④activej ❛♥❞ k = j ❛♥❞ ♥♦ ♦♥❣♦✐♥❣ vj.tx(.)⑥ ❛♣♣❡♥❞ msg t♦ txhj,k❀ ♦❝ ④true⑥ r❡t✉r♥ ✐♥♣✉t Seq vj.rx() ✐❝ ④♥♦ ♦♥❣♦✐♥❣ vj.rx()⑥ ♦✉t♣✉t msg, k ♦❝ {rxhk,j ◦ [msg] ♣r❡✜①✲♦❢ txhk,j⑥ ❛♣♣❡♥❞ msg t♦ rxhk,j
activej ← tr✉❡
r❡t✉r♥ msg
SLIDE 6
❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❝❤❛♥♥❡❧ ✕ ✸
✐♥♣✉t vj.inactive() ✐❝ ④activej ❛♥❞ ♥♦ ♦♥❣♦✐♥❣ vj.inactive()⑥
activej ← ❢❛❧s❡
♦❝ ④true⑥ r❡t✉r♥ ✐♥♣✉t va0.isTerminated() ✐❝ ④♥♦ ♦♥❣♦✐♥❣ va0.isTerminated()⑥ ♦❝ {terminated()} r❡t✉r♥
SLIDE 7