ss p ss r s s

ssPss rs s - PowerPoint PPT Presentation

ssPss rs s r tr r sss sr


  1. ▼❡ss❛❣❡✲P❛ss✐♥❣ ❙❡r✈✐❝❡s ✭❛❦❛ ❈❤❛♥♥❡❧s✮ ❙❤❛♥❦❛r ❙❡♣t❡♠❜❡r ✶✽✱ ✷✵✶✹

  2. ❖✈❡r✈✐❡✇✿ ▼s❣✲♣❛ss✐♥❣ s❡r✈✐❝❡ ✭❛❦❛ ❈❤❛♥♥❡❧✮ address 1 i n (e.g., mac, ip, url, ...) v[1] v[i] v[n] access system Channel( ... ) ❉✐str✐❜✉t❡❞ s❡r✈✐❝❡✿ ❛❞❞r❡ss❡s ❛♥❞ ❛❝❝❡ss s②st❡♠s ❈♦♥♥❡❝t✐♦♥✲❧❡ss✿ t① ❛♥❞ r① ✇✐t❤♦✉t ❛♥② ♣r✐♦r ✐♥t✐♠❛t✐♦♥ ✐♥♣✉t ❢♥s ❛t v[i] ✿ tx ✱ rx ❈♦♥♥❡❝t✐♦♥✲♦r✐❡♥t❡❞✿ t① ❛♥❞ r① ♦♥❧② ❛❢t❡r ❝♦♥♥❡❝t✐♦♥ ❡st❛❜❧✐s❤❡❞ ✐♥♣✉t ❢♥s ❛t v[i] ✿ connect ✱ accept ✱ close ✱ tx ✱ rx ✱ · · · ◗✉❛❧✐t②✿ ✜❢♦✱ ❧♦ss②✱ ▲❘❉ ✭❧♦ss✱ r❡♦r❞❡r✱ ❞✉♣❧✐❝❛t❡✮✱ · · · ❇❡♥❡✜ts ♦❢ ✐♥t❡r♥❛❧ ♥♦♥❞❡t❡r♠✐♥✐s♠

  3. ❖✉t❧✐♥❡ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ ❈♦♥♥❡❝t✐♦♥✲❧❡ss ❋✐❢♦ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲♦ss② ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲❘❉ ✭▲♦ss✱ ❘❡♦r❞❡r✐♥❣✱ ❉✉♣❧✐❝❛t✐♦♥✮ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲♦r✐❡♥t❡❞ ❋✐❢♦ ❈❤❛♥♥❡❧s ▼✉❧t✐♣❧❡①✐♥❣ P♦rts ♦♥t♦ ❈❤❛♥♥❡❧s

  4. ❋✐❢♦ ❈❤❛♥♥❡❧ ✕ ✶ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ ❙❡r✈✐❝❡ FifoChannel (ADDR) ADDR ✿ s❡t ♦❢ ❛❞❞r❡ss❡s ✴✴ ADDR.size > 0 ✐♥♣✉t ❢♥s ❛t j ✿ s .tx(k,msg) ✱ s .rx() ✴✴ s ✿ ❛❝❝❡ss s②st❡♠ ♠s❣s ❛r❡ Seq ▼❛✐♥✿ ✴✴ s❡q ♦❢ ♠s❣s s❡♥t ❛t j t♦ k txhj,k ← [] rxhj,k ← [] ✴✴ s❡q ♦❢ ♠s❣s r❝✈❞ ❛t k ❢r♦♠ j ✴✴ ❛❝❝❡ss s②st❡♠ ❛t j vj ← sid() ✴✴ ♠❛♣ ❢r♦♠ ADDR t♦ s✐❞s return {vj} ■♥ ❛♥ ✐♠♣❧❡♠❡♥t❛t✐♦♥ s❡♣❛r❛t❡ r❡t✉r♥ ❢♦r ❡❛❝❤ vj ❜✉t t❤❡ ❝♦❧❧❡❝t✐♦♥ ♦❢ r❡t✉r♥s ✐s ❡✛❡❝t✐✈❡❧② ❛t♦♠✐❝ ✴✴ ❲❤②❄

  5. ❋✐❢♦ ❈❤❛♥♥❡❧ ✕ ✷ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ ✐♥♣✉t void vj.tx(k,msg) ✴✴ ❛t j ✱ t① msg t♦ k ✐❝ ④ k � = j ❛♥❞ ♥♦ ♦♥❣♦✐♥❣ vj.tx(.) ⑥ ❛♣♣❡♥❞ msg t♦ txhj,k ❀ ♦❝ ④ true ⑥ r❡t✉r♥ ✐♥♣✉t Seq vj.rx() ✴✴ ❛t j ✱ r① ♠s❣ ✐❝ ④♥♦ ♦♥❣♦✐♥❣ vj.rx() ⑥ ♦✉t♣✉t msg, k ✴✴ r❝✈❞ ♠s❣✱ s❡♥❞❡r ❛❞❞r ♦❝ {rxhk,j ◦ [msg] ♣r❡✜①✲♦❢ txhk,j ⑥ ❛♣♣❡♥❞ msg t♦ rxhk,j ❀ r❡t✉r♥ msg ❀ k ✐s ✐♥t❡r♥❛❧ ♣❛r❛♠ → ✐♥t❡r♥❛❧ ♥♦♥❞❡t❡r♠✐♥✐s♠ ✴✴ ❆✈♦✐❞❛❜❧❡❄

  6. ❋✐❢♦ ❈❤❛♥♥❡❧ ✕ ✸ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ✐♥♣✉t ♣❛rts ❛♥❞ ♦✉t♣✉t ♣❛rts ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥ ♦♥❣♦✐♥❣ vj.tx(.) ♥♦t ♦♥❣♦✐♥❣ vj.tx(.) ✴✴ t① ❧❡❛❞s✲t♦ txhk,j.size ≥ i ❧❡❛❞s✲t♦ // rx rxhk,j.size ≥ i ♦r ♥♦t ♦♥❣♦✐♥❣ vj.rx() sum (txhk,j.size: k in ADDR) ≥ i ❧❡❛❞s✲t♦ // weaker rx sum (rxhk,j.size: k in ADDR) ≥ i ♦r ♥♦t ♦♥❣♦✐♥❣ vj.rx()

  7. ❋✐❢♦ ❈❤❛♥♥❡❧ ■♥✈❡rs❡ ✕ ✶ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ Pr♦❣r❛♠ FifoChannelInverse (ADDR, Map<ADDR,Sid> v) ♠❛✐♥✿ txhj,k ✱ rxhj,k ✱ vj ♦✉t♣✉t ❢♥s✿ doTx(j,k,msg) ✱ doRx(j) ♣r♦❣r❡ss ❝♦♥❞✐t✐♦♥✿ ♥♦ ❝❤❛♥❣❡ ♦✉t♣✉t doTx(j, k, msg) ♦❝ ④ k � = j ❛♥❞ ♥♦ ♦♥❣♦✐♥❣ vj.tx(.) ⑥ ❛♣♣❡♥❞ msg t♦ txhj,k ❀ vj.tx(k, msg) ✐❝ ④ true ⑥

  8. ❋✐❢♦ ❈❤❛♥♥❡❧ ■♥✈❡rs❡ ✕ ✷ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ✜❢♦ ♦✉t♣✉t doRx(j) ♦❝ ④♥♦ ♦♥❣♦✐♥❣ vj.rx() ⑥ [msg, k] ← vj.rx() ✴✴ ❧♦❝❛❧ ✈❛rs ✐❝ {rxhk,j ◦ [msg] ♣r❡✜①✲♦❢ txhk,j ⑥ ❛♣♣❡♥❞ msg t♦ rxhk,j ❀ ❘❡❝❛❧❧ k ✿ ✐♥t❡r♥❛❧ ♣❛r❛♠ ✐♥ s❡r✈✐❝❡ ♥♦t ♣r❡s❡♥t ✐♥ r❡❣✉❧❛r ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❜✉t r❡t✉r♥❡❞ ❜② ❛❜♦✈❡ ✐♠♣❧❡♠❡♥t❛t✐♦♥ vj.rx() ❛✉❣♠❡♥t r❡❣✉❧❛r ✐♠♣❧❡♠❡♥t❛t✐♦♥ ✇✐t❤ ❛✉①✐❧✐❛r②

  9. ❖✉t❧✐♥❡ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧♦ss② ❈♦♥♥❡❝t✐♦♥✲❧❡ss ❋✐❢♦ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲♦ss② ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲❘❉ ✭▲♦ss✱ ❘❡♦r❞❡r✐♥❣✱ ❉✉♣❧✐❝❛t✐♦♥✮ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲♦r✐❡♥t❡❞ ❋✐❢♦ ❈❤❛♥♥❡❧s ▼✉❧t✐♣❧❡①✐♥❣ P♦rts ♦♥t♦ ❈❤❛♥♥❡❧s

  10. ▲♦ss② ❈❤❛♥♥❡❧ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧♦ss② ▲♦ss② ❝❤❛♥♥❡❧ ✐s ❛ ✜❢♦ ❝❤❛♥♥❡❧ ❡①❝❡♣t ♠s❣s ❝❛♥ ❜❡ ❧♦st LossyChannel(.) ✿ FifoChannel(.) ✇✐t❤ t✇♦ ❝❤❛♥❣❡s t♦ vj.rx ♦✉t♣✉t ❝♦♥❞✐t✐♦♥✿ {rxhk,j ◦ [msg] ♣r❡✜①✲♦❢ s✉❜s❡q✉❡♥❝❡✲♦❢ txhk,j ⑥ ♣r♦❣r❡ss ✕ ♦♣t✐♦♥ ✶✿ ✭ msg r❡♣❡❛t❡❞❧② s❡♥t t♦ j ✮ ❛♥❞ ✭ j r❡♣❡❛t❡❞❧② ❝❛❧❧s rx ✮ j r❡❝❡✐✈❡s msg ⇒ ♣r♦❣r❡ss ✕ ♦♣t✐♦♥ ✷ ✭♠s❣s ❢r♦♠ msgset r❡♣❡❛t❡❞❧② s❡♥t t♦ j ✮ ❛♥❞ ✭ j r❡♣❡❛t❡❞❧② ❝❛❧❧s rx ✮ ⇒ j r❡❝❡✐✈❡s ♠s❣ ❢r♦♠ msgset

  11. ▲♦ss② ❝❤❛♥♥❡❧✿ ❢♦r♠❛❧✐③✐♥❣ r① ♣r♦❣r❡ss ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧♦ss② Pr♦❣r❡ss ✕ ♦♣t✐♦♥ ✶ ❤❡❧♣❡r ❢✉♥❝t✐♦♥s nbr ✭ txh ✱ msg ✮✿ ★ ♦❢ txh ❡♥tr✐❡s t❤❛t ❡q✉❛❧ msg increasing (txh, msg) ✿ nbr ✭ txh ✱ msg ✮ = i nbr ✭ msg ✱ txh ✮ > i ❧❡❛❞s✲t♦ ❛♥❞ increasing (txhj,k, msg) ✭♥♦t ♦♥❣♦✐♥❣ vj.rx ♦♥❣♦✐♥❣ vj.rx ✮ ❧❡❛❞s✲t♦ ⇒ increasing (rxhj,k, msg) Pr♦❣r❡ss ✕ ♦♣t✐♦♥ ✷ ❛❜♦✈❡ ❡①❝❡♣t nbr ✭ txh ✱ msgset ✮✿ ★ ♦❢ txh ❡♥tr✐❡s t❤❛t ❛r❡ ✐♥ msgset

  12. ❖✉t❧✐♥❡ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧r❞ ❈♦♥♥❡❝t✐♦♥✲❧❡ss ❋✐❢♦ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲♦ss② ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲❧❡ss ▲❘❉ ✭▲♦ss✱ ❘❡♦r❞❡r✐♥❣✱ ❉✉♣❧✐❝❛t✐♦♥✮ ❈❤❛♥♥❡❧s ❈♦♥♥❡❝t✐♦♥✲♦r✐❡♥t❡❞ ❋✐❢♦ ❈❤❛♥♥❡❧s ▼✉❧t✐♣❧❡①✐♥❣ P♦rts ♦♥t♦ ❈❤❛♥♥❡❧s

  13. ▲❘❉ ❈❤❛♥♥❡❧ ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧r❞ ▲❘❉ ❝❤❛♥♥❡❧ ❝❛♥ ❧♦s❡✱ r❡♦r❞❡r ❛♥❞ ❞✉♣❧✐❝❛t❡ ♠s❣s ❛♥② ♠❡ss❛❣❡ s❡♥t ✐♥ t❤❡ ♣❛st ❝❛♥ ❜❡ ✭❛❣❛✐♥✮ r❡❝❡✐✈❡❞ ❙❡r✈✐❝❡ ♣r♦❣r❛♠✿ ♦♣t✐♦♥ ✶ LossyChannel(.) ✇✐t❤ vj.rx.oc ❝❤❛♥❣❡❞ t♦ {rxhk,j ◦ [msg] s✉❜s❡q✉❡♥❝❡✲♦❢ ✐♥ txhk,j ⑥ ❙❡r✈✐❝❡ ♣r♦❣r❛♠✿ ♦♣t✐♦♥ ✷ txhj ✿ s❡q ♦❢ ♠s❣s s❡♥t t♦ j ❢r♦♠ ❛♥②✇❤❡r❡ rxhj ✿ s❡q ♦❢ ♠s❣s r❝✈❞ ❛t j ❢r♦♠ ❛♥②✇❤❡r❡ ❛♥② msg ✐♥ txhj ❝❛♥ ❜❡ r❡❝❡✐✈❡❞

  14. ❙❡r✈✐❝❡ LrdChannel (ADDR) ❝♦♥♥❡❝t✐♦♥✲❧❡ss ❧r❞ ▼❛✐♥✿ txhj ✱ rxhj ✱ r❡t✉r♥ ④ vj ⑥ ✐♥♣✉t void vj.tx(k,msg) ✐♥♣✉t Seq vj.rx() ✐❝ {...} ✐❝ {...} ❛♣♣❡♥❞ msg t♦ txhk ❀ ♦✉t♣✉t msg ♦❝ {true} ♦❝ {msg in txhj} r❡t✉r♥ ❛♣♣❡♥❞ msg t♦ rxhj ❀ r❡t✉r♥ msg ❀ Pr♦❣r❡ss ❛ss✉♠♣t✐♦♥ ❢♦r r① increasing (txhj, msg) ❛♥❞ ✭♥♦t ♦♥❣♦✐♥❣ vj.rx ♦♥❣♦✐♥❣ vj.rx ✮ ❧❡❛❞s✲t♦ ⇒ increasing (rxhj, msg) ◆♦ ✐♥t❡r♥❛❧ ♥♦♥❞❡t❡r♠✐♥✐s♠

Recommend


More recommend