s r r t
play

s r rt r - PowerPoint PPT Presentation

s r rt r r r ss t s r


  1. ▲♦❝❦ ✉s✐♥❣ ❇❛❦❡r② ❆❧❣♦r✐t❤♠ ❙❤❛♥❦❛r ❆♣r✐❧ ✶✻✱ ✷✵✶✹

  2. ❖✈❡r✈✐❡✇ ❈❧❛ss✐❝❛❧ ♠✉t✉❛❧ ❡①❝❧✉s✐♦♥ ♣r♦❜❧❡♠ ❣✐✈❡♥ ♣r♦❣r❛♠ ✇✐t❤ ✏❝r✐t✐❝❛❧ s❡❝t✐♦♥s✑ ❛♥❞ t❤r❡❛❞s 0..N − 1 ♦❜t❛✐♥ ✏❡♥tr②✑ ❛♥❞ ✏❡①✐t✑ ❝♦❞❡ ❢♦r ❡❛❝❤ ❝r✐t✐❝❛❧ s❡❝t✐♦♥ st ❛t ♠♦st ♦♥❡ t❤r❡❛❞ ✐♥ ❛ ❝r✐t✐❝❛❧ s❡❝t✐♦♥ t❤r❡❛❞ ✐♥ ❡♥tr② ❝♦❞❡ ❡✈❡♥t✉❛❧❧② ❡♥t❡rs ❝r✐t✐❝❛❧ s❡❝t✐♦♥ ✐❢ ♥♦ t❤r❡❛❞ st❛②s ✐♥ ❝r✐t✐❝❛❧ s❡❝t✐♦♥ ❢♦r❡✈❡r ❛ss✉♠❡ ♦♥❧② ❛t♦♠✐❝ r❡❛❞s ❛♥❞ ✇r✐t❡s ❆♥② s♦❧✉t✐♦♥ ♣r♦✈✐❞❡s ❛ SimpleLockService(N) ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❲❡ ✇✐❧❧ ♦❜t❛✐♥ ♦♥❡ ✉s✐♥❣ t❤❡ ❇❛❦❡r② ❛❧❣♦r✐t❤♠ ❤✉♥❣r②✿ ♦♥❣♦✐♥❣ r❡q✉❡st ❢♦r t❤❡ ❧♦❝❦ ❡❛t✐♥❣✿ ❤♦❧❞s t❤❡ ❧♦❝❦❀ ✐♥ ❝r✐t✐❝❛❧ s❡❝t✐♦♥ ✴✴ ❝♦♥✈❡♥t✐♦♥s t❤✐♥❦✐♥❣✿ ♥❡✐t❤❡r ❤✉♥❣r② ♥♦r ❡❛t✐♥❣

  3. ❚❤❡ ❇❛❦❡r② ❆♣♣r♦❛❝❤ ❱❛r✐❛❜❧❡s s❤❛r❡❞ ❜② t❤r❡❛❞s 0..N − 1 num[0] ✱ · · · ✱ num[N − 1] ✱ ✐♥✐t✐❛❧❧② 0 ✴✴ num[i] > 0 ✐✛ i ♥♦t t❤✐♥❦✐♥❣ ▲♦❝❦ ❛❝q✉✐r❡✿ t❤r❡❛❞ i ❞♦❡s t✇♦ s❝❛♥s ♦❢ num s s✶✿ s❡t num[i] t♦ ❛ ✈❛❧✉❡ ❤✐❣❤❡r t❤❛♥ ♦t❤❡r num s s✷✿ ✇❛✐t ❛t ❡❛❝❤ j ✇❤✐❧❡ 0 < num[j] < num[i] ▲♦❝❦ r❡❧❡❛s❡✿ t❤r❡❛❞ i ③❡r♦❡s num[i] ❘❡❢❡r t♦ t❤❡ ❛❜♦✈❡ ❛s s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ✇♦r❦s ✐❢ s1 ✐s ❛t♦♠✐❝ ❜✉t ♥♦t ✇✐t❤ r❡❛❞✲✇r✐t❡ ❛t♦♠✐❝✐t② ❈❧❛ss✐❝❛❧ ❜❛❦❡r② ❤❛♥❞❧❡s r✴✇ ❛t♦♠✐❝✐t② ❜✉t num s ✉♥❜♦✉♥❞❡❞ ❇❧❛❝❦✲✇❤✐t❡ ❜❛❦❡r② ❤❛♥❞❧❡s r✴✇ ❛t♦♠✐❝✐t② ✇✐t❤ num s ❜♦✉♥❞❡❞

  4. ❖✉t❧✐♥❡ s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ❙✐♠♣❧✐✜❡❞ ❇❛❦❡r② ❈❧❛ss✐❝❛❧ ❇❛❦❡r② ❇❧❛❝❦✲✇❤✐t❡ ❇❛❦❡r②

  5. Pr♦❣r❛♠ LockSimplifiedBakery(N) s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ▼❛✐♥ num[0 .. N − 1] ← 0 mysid.acq() ✿ s1: • num[myid] ← max(num[0], · · · , num[N − 1]) + 1 for (p in 0..N − 1) do • x ← num[p] s2: while (0 < x < num[myid]) mysid.rel() ✿ num[myid] ← 0 mysid.end() ✿ num[myid] ← 0 ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ t❤❡ ❵ • ✬s ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss

  6. ❆♥❛❧②s✐s ✕ ✶ s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ●♦❛❧✿ s❤♦✇ s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ✐♠♣❧❡♠❡♥ts s✐♠♣❧❡ ❧♦❝❦ s❡r✈✐❝❡ ❉❡✜♥❡ ❝❧♦s❡❞ ♣r♦❣r❛♠ ♦❢ LockSimplifiedBakery(N) s②st❡♠✱ lck ✱ ❛♥❞ SimpleLockServiceInverse(N) s②st❡♠✱ lsi ❆ss❡rt✐♦♥s t♦ ❡st❛❜❧✐s❤ Y ✶ : ■♥✈ ✭t❤r❞ ❛t doAcq(i).ic ✮ ⇒ ✭♥♦ t❤r❞ ❡❛t✐♥❣✮ Y ✷ : t❤r❞ i ✐♥ lck.rel r❡t✉r♥s Y ✸ : t❤r❞ i ✐♥ lck.end r❡t✉r♥s Y ✹ : ❡✈❡r② ❤✉♥❣r② t❤r❞ ❜❡❝♦♠❡s ❡❛t✐♥❣ ✐❢ ❡❛t✐♥❣ ✐s ❜♦✉♥❞❡❞ Y ✷ ❛♥❞ Y ✸ ❤♦❧❞ tr✐✈✐❛❧❧② ✴✴ lck.rel ✱ lck.end ♥♦♥✲❜❧♦❝❦✐♥❣ Pr♦♦❢s ♦❢ Y ✶ ❛♥❞ Y ✹ ❢♦❧❧♦✇

  7. ❆♥❛❧②s✐s ✕ ✷ s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ■♥str✉❝t✐✈❡ t♦ ❞❡✜♥❡ ❛ ❤②♣♦t❤❡t✐❝❛❧ q✉❡✉❡ ♦❢ ❝♦♥t❡♥❞❡rs Q ✿ s❡q✉❡♥❝❡ ♦❢ ✐❞s ♦❢ ♥♦♥✲t❤✐♥❦✐♥❣ t❤r❡❛❞s ✐♥ ✐♥❝r❡❛s✐♥❣ num ♦r❞❡r i ❥♦✐♥s ✴ ❧❡❛✈❡s Q ✇❤❡♥ ✐t ❡①❡❝✉t❡s s✶ ✴ rel num s ✐♥ Q ❛r❡ ❞✐st✐♥❝t ✴✴ s✶ ✐s ❛t♦♠✐❝ ❛rr✐✈❛❧ ❥♦✐♥s ❛t t❛✐❧ ✴✴ ✧ ✧ i ❛❤❡❛❞✲♦❢ j ✿ 0 < num[i] < num[j] i ♣❛ss❡❞ j ✿ i ✐s ❡❛t✐♥❣ ♦r i ✐s ✐♥ s✷ ✇✐t❤ i.p > j ■❢ i ❛❤❡❛❞✲♦❢ j t❤❡♥ j ❝❛♥♥♦t ♣❛ss i s♦ ♦♥❧② t❤❡ t❤r❡❛❞ ❛t t❤❡ ❤❡❛❞ ♦❢ Q ❝❛♥ ❡❛t ✴✴ Y ✶ ■❢ i ❛t ❤❡❛❞ ♦❢ Q t❤❡♥ i ♣❛ss❡s ❡✈❡r② j s♦ i ❡❛ts ❛♥❞ t❤❡♥ ❧❡❛✈❡s Q ❛t ✇❤✐❝❤ ♣♦✐♥t ❡✈❡r② j ✐♥ Q ❣❡ts ❝❧♦s❡r t♦ t❤❡ ❤❡❛❞ ✴✴ Y ✹

  8. ❖✉t❧✐♥❡ r✴✇ ❛t♦♠✐❝✐t② s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ❙✐♠♣❧✐✜❡❞ ❇❛❦❡r② ❙✐♠♣❧✐✜❡❞ ❜❛❦❡r②✿ ❢❛✐❧s ✇✐t❤ ♦♥❧② r❡❛❞✲✇r✐t❡ ❛t♦♠✐❝✐t② ❈❧❛ss✐❝❛❧ ❇❛❦❡r② ❇❧❛❝❦✲✇❤✐t❡ ❇❛❦❡r②

  9. ❋❧❛✇s ✇✐t❤ r✴✇ ❛t♦♠✐❝✐t② ✕ ✶ r✴✇ ❛t♦♠✐❝✐t② s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ❙✐♠♣❧✐✜❡❞ ❜❛❦❡r② ❢❛✐❧s ✐❢ ♦♥❧② r❡❛❞s ❛♥❞ ✇r✐t❡s ❛r❡ ❛t♦♠✐❝ ♣r♦❜❧❡♠ ❛r✐s❡s ✇❤❡♥ t❤r❡❛❞s ❡①❡❝✉t❡ s1 s✐♠✉❧t❛♥❡♦✉s❧② ❋❧❛✇ ✶ t❤r❡❛❞s i ❛♥❞ j ♦✈❡r❧❛♣♣✐♥❣ ✐♥ s1 ❝❛♥ ❣❡t ❡q✉❛❧ ♥✉♠s ❡✳❣✳✱ ❡❛❝❤ r❡❛❞s t❤❡ ♦t❤❡r✬s num ❜❡❢♦r❡ ❡✐t❤❡r ✉♣❞❛t❡s ✐ts num ❡❛❝❤ t❤r❡❛❞ ♣❛ss❡s t❤❡ ♦t❤❡r✿ ❜♦t❤ ❛❝q✉✐r❡ t❤❡ ❧♦❝❦ ✴✴ ♦r ❡❛❝❤ t❤r❡❛❞ ✇❛✐ts ❢♦r t❤❡ ♦t❤❡r✿ ❞❡❛❞❧♦❝❦ ❋✐①✐♥❣ ✢❛✇ ✶ ✉s❡ t❤r❡❛❞ ✐❞s t♦ ❜r❡❛❦ t✐❡s ✐♥ s2 ❧❡t [num[i],i] < [num[j],j] ❞❡♥♦t❡ ♦r num[i] < num[j] (num[i] = num[j] and i < j)

  10. ❋❧❛✇s ✇✐t❤ r✴✇ ❛t♦♠✐❝✐t② ✕ ✷ r✴✇ ❛t♦♠✐❝✐t② s✐♠♣❧✐✜❡❞ ❜❛❦❡r② ❋❧❛✇ ✷ t❤r❡❛❞s i ❛♥❞ j ♦✈❡r❧❛♣ ✐♥ s1 i ❧❡❛✈❡s s1 ❜❡❢♦r❡ j ✱ ♣❛ss❡s j ✐♥ s2 ❜❡❝❛✉s❡ num[j] st✐❧❧ 0 j ❧❡❛✈❡s s1 ❧❛t❡r ✇✐t❤ num[j] < num[i] ✱ s♦ j ♣❛ss❡s i ✐♥ s2 i ❛♥❞ j ❜♦t❤ ❛❝q✉✐r❡ t❤❡ ❧♦❝❦ ❋✐①✐♥❣ ✢❛✇ ✷ ❜♦♦❧❡❛♥s choosing[0] ✱ · · · ✱ choosing[N − 1] ✱ ✐♥✐t✐❛❧❧② ❢❛❧s❡ i s❡ts choosing[i] ❜❡❢♦r❡ s1 ❛♥❞ r❡s❡ts ✐t ❛❢t❡r s1 ✐♥ s✷✱ t❤r❞ i r❡❛❞s num[j] ♦♥❧② ❛❢t❡r ✜♥❞✐♥❣ choosing[j] ❢❛❧s❡ ❚❤✉s i r❡❛❞s ❛♥ ✏✉♥st❛❜❧❡✑ num[j] ♦♥❧② ✐❢ j st❛rt❡❞ ❝❤♦♦s✐♥❣ ❛❢t❡r i ✜♥✐s❤❡❞ ❝❤♦♦s✐♥❣ s♦ num[j] ✇✐❧❧ ❜❡ ❤✐❣❤❡r t❤❛♥ num[i] ❛♥❞ j ✇✐❧❧ ♥♦t ♣❛ss i

  11. ❖✉t❧✐♥❡ ❝❧❛ss✐❝❛❧ ❜❛❦❡r② ❙✐♠♣❧✐✜❡❞ ❇❛❦❡r② ❈❧❛ss✐❝❛❧ ❇❛❦❡r② ❇❧❛❝❦✲✇❤✐t❡ ❇❛❦❡r②

  12. Pr♦❣r❛♠ LockBakery(N) ❝❧❛ss✐❝❛❧ ❜❛❦❡r② ▼❛✐♥✿ choosing[ 0.. N − 1] ← false num[0 .. N − 1] ← 0 mysid.acq() ✿ t1: choosing[myid] ← true t2: • num[myid] ← max( • num[0], · · · , • num[N − 1]) + 1 t3: • choosing[myid] ← false for (p in 0..N − 1) while ( • choosing[p]) skip t4: do • x ← num[p] t5: while (x � = 0 and [x,p] < [num[myid], myid]) mysid.rel() ✿ num[myid] ← 0 mysid.end() endSystem()

  13. ❆♥❛❧②s✐s✿ ♦✈❡r✈✐❡✇ ❝❧❛ss✐❝❛❧ ❜❛❦❡r② ●♦❛❧✿ s❤♦✇ ❜❛❦❡r② ✐♠♣❧❡♠❡♥ts s✐♠♣❧❡ ❧♦❝❦ s❡r✈✐❝❡ Pr♦❝❡❡❞✐♥❣ ❛s ✉s✉❛❧ ❝❧♦s❡❞ ♣r♦❣r❛♠ ♦❢ ❧♦❝❦ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ ❛ss❡rt✐♦♥s Y ✶ ✕ Y ✹ t♦ ❡st❛❜❧✐s❤ Y ✷ ✕ Y ✸ ❤♦❧❞ tr✐✈✐❛❧❧② ❊st❛❜❧✐s❤ Y ✶ ✱ Y ✹ ♥❡①t

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend