SLIDE 1
strt r r - - PowerPoint PPT Presentation
strt r r - - PowerPoint PPT Presentation
strt r r r t ss rr
SLIDE 2
SLIDE 3
❖✈❡r✈✐❡✇
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
Pr♦❣r❛♠ DsmSCopyDist✿ ✐♠♣❧❡♠❡♥ts ❝♦❤❡r❡♥t ❞s♠ ✉s✐♥❣ ♦❜❥❡❝t✲tr❛♥s❢❡r s❡r✈✐❝❡ st❛rts ♦❜❥✲tr❛♥s❢❡r s❡r✈✐❝❡ ♦✈❡r ❣✐✈❡♥ ❛❞❞rs st❛rts DsmSCopy s②st❡♠ ❛t ❡✈❡r② ❛❞❞r ♦❢ ♦❜❥✲tr❛♥s❢❡r s❡r✈✐❝❡ ❊❛❝❤ DsmSCopy s②st❡♠ ❤♦❧❞s ❛ s✉❜s❡t ♦❢ ♣❛❣❡s ❢♦r ✐ts ✉s❡r ■♥✐t✐❛❧❧②✱ ♣❛❣❡s ❛r❡ ♣❛rt✐t✐♦♥❡❞ ❛♠♦♥❣st DsmSCopy s②st❡♠s ❲❤❡♥ ✉s❡r ❛tt❡♠♣ts ❛❝❝❡ss t♦ ❛ ♣❛❣❡ ✐❢ ♣❛❣❡ ✐s ♥♦t ❧♦❝❛❧✱ ✉s❡ ♦❜❥✲tr❛♥s❢❡r s❡r✈✐❝❡ t♦ ♦❜t❛✐♥ ♣❛❣❡ ✐❢ ♣❛❣❡ ✐s ❧♦❝❛❧✱ ❛❝❝❡ss ♣❛❣❡ ❛s ✉s✉❛❧
SLIDE 4
❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
♣r♦❣r❛♠ DsmSCopyDist ( ADDR, PNO, PVAL,{initPagesj} )
// initPagesj✿ ✐♥✐t✐❛❧ ♣❛❣❡ ♥✉♠❜❡rs ❛t ❛❞❞r j
{wj} ← st❛rt ObjTransferService ( ADDR, PNO, PVAL, initPages ) ❢♦r j ✐♥ ADDR
vj ← st❛rt DsmSCopy ( PNO, PVAL, initPagesj, wj)
r❡t✉r♥ {vj} ■♥♣✉t ❢♥s✿ vj✳r❡❛❞✭♣♥✮✱ vj✳✇r✐t❡✭♣♥✱ ♣✈✮ ■♠♣❧❡♠❡♥ts DsmSeqConService ( ADDR, PNO, PVAL )
SLIDE 5
Pr♦❣r❛♠ DsmSCopy ✕ ✶
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
P❛r❛♠❡t❡rs✿ PNO✱ PVAL✱ initPagesj✱ wj
// ♥♦t❡✿ ♥♦ ❛❞❞rs
■♥♣✉t ❢♥s✿ ♠②s✐❞✳r❡❛❞✭♣♥✮✱ ♠②s✐❞✳✇r✐t❡✭♣♥✱ ♣✈✮ ▲♦❝❛❧ ❢♥s✿ ❞♦❘①❘❡q✭✮
// r❝✈s r❡qs ❢r♦♠ ♦❜❥✲①❢r s❡r✈✐❝❡
❖✉t♣✉t ❝❛❧❧s✿ wj✳❛❝q✭♣♥✮✱ wj✳r❡❧✭♣♥✱ ♣✈✮✱ wj✳r①❘❡q✭✮ ▼❛✐♥
pgVal✿ ♠❛♣ <PNO, PVAL> // pn✲❡♥tr② ✐✛ ♣❛❣❡ pn ❧♦❝❛❧ pgValpn ← ✵✱ ❢♦r pn ✐♥ initPagesj startThread ( doRxReq() )
SLIDE 6
Pr♦❣r❛♠ DsmSCopy ✕ ✷
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
✐♥♣✉t ♠②s✐❞✳r❡❛❞(pn)✿ ❛✇❛✐t ✭tr✉❡✮ ✐❢ ✭pgVal ❤❛s pn ❡♥tr②✮ r❡t✉r♥ pgValpn
- tpv ← wj✳❛❝q(pn)
❛✇❛✐t ✭tr✉❡✮
pgValpn ← tpv
r❡t✉r♥ pgValpn
SLIDE 7
Pr♦❣r❛♠ DsmSCopy ✕ ✸
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
✐♥♣✉t ♠②s✐❞✳✇r✐t❡(pn, pv)✿ ❛✇❛✐t ✭tr✉❡✮ ✐❢ ✭pgVal ❤❛s pn ❡♥tr②✮
pgValpn ← pv
r❡t✉r♥
- tpv ← wj✳❛❝q(pn)
❛✇❛✐t ✭tr✉❡✮
pgValpn ← tpv pgValpn ← pv
r❡t✉r♥
SLIDE 8
Pr♦❣r❛♠ DsmSCopy ✕ ✹
s❝♦♣②✲❞s♠ ♣r♦❣r❛♠
❢✉♥❝t✐♦♥ doRxReq()✿ ✇❤✐❧❡ ✭tr✉❡✮
- pn ← wj✳r①❘❡q()
✐❝ ④ pn ✐♥ PNO ⑥ ❛✇❛✐t ✭pn✲❡♥tr② ✐♥ pgVal✮
wj✳r❡❧(pn, pgValpn)
r❡♠♦✈❡ pn✲❡♥tr② ❢r♦♠ pgVal ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ❛✇❛✐t ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ✇❡❛❦ ❢❛✐r♥❡ss ❢♦r ❛❧❧ t❤r❡❛❞s
SLIDE 9
❖✉t❧✐♥❡
s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❙✐♥❣❧❡✲❈♦♣② ❉✐str✐❜✉t❡❞ ❙❤❛r❡❞ ▼❡♠♦r② ■♠♣❧❡♠❡♥t❛t✐♦♥ Pr♦✈✐♥❣ t❤❡ ✐♠♣❧❡♠❡♥ts ❝♦♥❞✐t✐♦♥s
SLIDE 10
❆♥❛❧②s✐s ♦✈❡r✈✐❡✇
s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❚♦ ♣r♦✈❡✿ DsmSCopyDist ✐♠♣❧❡♠❡♥ts DsmSeqConService ❉❡✜♥❡ ♣r♦❣r❛♠ Z ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ si ■❞❡♥t✐❢② ❡✛❡❝t✐✈❡ ❛t♦♠✐❝✐t② ❜r❡❛❦♣♦✐♥ts
// •
■❞❡♥t✐❢② ❛ss❡rt✐♦♥s A t♦ ❤♦❧❞ Pr♦✈❡ Z s❛t✐s✜❡s A
SLIDE 11
❖✉t❧✐♥❡
❩ s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❙✐♥❣❧❡✲❈♦♣② ❉✐str✐❜✉t❡❞ ❙❤❛r❡❞ ▼❡♠♦r② ■♠♣❧❡♠❡♥t❛t✐♦♥ Pr♦✈✐♥❣ t❤❡ ✐♠♣❧❡♠❡♥ts ❝♦♥❞✐t✐♦♥s
Pr♦❣r❛♠ ❩ ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ ❙❛❢❡t② ❛♥❛❧②s✐s Pr♦❣r❡ss ❛♥❛❧②s✐s
SLIDE 12
■♠♣❧❡♠❡♥t❛t✐♦♥ ✰ s❡r✈✐❝❡ ✐♥✈❡rs❡ ✕ ✶
❩ s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
P❛r❛♠❡t❡rs✿
ADDR✱ PNO✱ PVAL✱ initPages DsmSCopy ❛t j✿ j.pgVal startThread ( doRxReq() ) DsmSeqConServiceInverse✿
✐❝ {· · · } α ← []
// ✇❝❛❧❧s✱ rr❡ts
SLIDE 13
■♠♣❧❡♠❡♥t❛t✐♦♥ ✰ s❡r✈✐❝❡ ✐♥✈❡rs❡ ✕ ✷
❩ s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
✐♥♣✉t j✳r❡❛❞(pn)✿ ❛✇❛✐t ✭tr✉❡✮ ✐❢ ✭pgValpn ❡①✐sts✮ ❜✶✿ r❡t✉r♥ pgValpn
- tpv ← wj✳❛❝q(pn)
❛✇❛✐t ✭tr✉❡✮
pgValpn ← tpv
❜✷✿ r❡t✉r♥ pgValpn
doRead(j,pn)
♦❝ { ♥♦ ♦♥❣♦✐♥❣
j.read(.) ♦r j.write(.)
♣✈ ← ❥✳r❡❛❞✭♣♥✮ ✐❝ { seqConsistent( α ◦ [[RRET
, j, pn, pv]])}
α✳❛♣♣❡♥❞([[RRET
, j, pn, pv]])}
SLIDE 14
■♠♣❧❡♠❡♥t❛t✐♦♥ ✰ s❡r✈✐❝❡ ✐♥✈❡rs❡ ✕ ✸
❩ s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
✐♥♣✉t j✳✇r✐t❡(pn, pv)✿ ❛✇❛✐t ✭tr✉❡✮ ✐❢ ✭pgValpn ❡①✐sts✮
pgValpn ← pv
❜✸✿ r❡t✉r♥ ❜✹✿• tpv ← wj✳❛❝q(pn) ❛✇❛✐t ✭tr✉❡✮
pgValpn ← tpv pgValpn ← pv
❜✺✿ r❡t✉r♥
doWrite(j,pn)
♦❝ { ♥♦ ♦♥❣♦✐♥❣
j.read(.) ♦r j.write(.)
α✳❛♣♣❡♥❞([[WCALL, j, pn, pv]])}
j✳✇r✐t❡(pn, pv)
✐❝ { tr✉❡ }
SLIDE 15
■♠♣❧❡♠❡♥t❛t✐♦♥ ✰ s❡r✈✐❝❡ ✐♥✈❡rs❡ ✕ ✹
❩ s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❢✉♥❝t✐♦♥ doRxReq()✿ ... ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿ ... ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥✿ ... ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥✿
...
♣r♦❣r❡ss ❝♦♥❞✐t✐♦♥✿
... ObjTransferService ( ADDR, PNO, PVAL, initPages )
SLIDE 16
❖✉t❧✐♥❡
s❛❢❡t② s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❙✐♥❣❧❡✲❈♦♣② ❉✐str✐❜✉t❡❞ ❙❤❛r❡❞ ▼❡♠♦r② ■♠♣❧❡♠❡♥t❛t✐♦♥ Pr♦✈✐♥❣ t❤❡ ✐♠♣❧❡♠❡♥ts ❝♦♥❞✐t✐♦♥s
Pr♦❣r❛♠ ❩ ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ ❙❛❢❡t② ❛♥❛❧②s✐s Pr♦❣r❡ss ❛♥❛❧②s✐s
SLIDE 17
❆ss❡rt✐♦♥s t♦ ❡st❛❜❧✐s❤
s❛❢❡t② s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❚♦ s❛t✐s❢② s❡r✈✐❝❡✱ ♥❡❡❞ t♦ ♣r♦✈❡ ❩ s❛t✐s✜❡s A✶ A✶ : ■♥✈ t❤r❡❛❞ ❛t si✳❞♦❘❡❛❞(j,pn)✳✐❝ ⇒ seqConsistent (α ◦ [[RRET
, j, pn, pv]])
A✶ ❡q✉✐✈❛❧❡♥t t♦ ■♥✈ B✶
// ✇❝❛❧❧ ♣r❡s❡r✈❡s s❡q ❝♦♥s✐st❡♥❝②
B✶ : seqConsistent (α )
SLIDE 18
Pr♦♦❢ ✕ ✶
s❛❢❡t② s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❉❡✜♥❡ ❛✉①✐❧✐❛r② ✈❛r β st Z s❛t✐s✜❡s ■♥✈ B✷✕B✸ B✷ : ❢♦r❛❧❧(j✿ [[., j, ., .] ✐♥ β] = [[., j, ., .] ✐♥ α])) B✸ : sequential(β) ❈❛♥❞✐❞❛t❡✿ β = βS ◦ βT
// st❛❜❧❡ ◦ tr❛♥s✐❡♥t
✇❤❡♥ [.,j,pn,pv] ✐s ❛♣♣❡♥❞❡❞ t♦ α ❛♣♣❡♥❞ ✐t t♦ βS ✐❢ j.pgValpn ❡①✐sts
// ❛t ❜✶✱ ❜✷✱ ❜✸
❛♣♣❡♥❞ ✐t t♦ βT ♦✴✇
// ❛t ❜✹
✇❤❡♥ j.write(pn,pv) ❝❛❧❧ ❜❡❝♦♠❡s ✉♥❜❧♦❝❦❡❞ r❡♠♦✈❡ ✐ts ❡♥tr② ❢r♦♠ βT ❛♥❞ ❛♣♣❡♥❞ t♦ βS
// ❛t ❜✺
❙✉✣❝✐❡♥t t♦ ♣r♦✈❡ ■♥✈ B✷✕B✸
SLIDE 19
Pr♦♦❢ ✕ ✷
s❛❢❡t② s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❘❡q✉✐r❡s ♣r♦✈✐♥❣ ♦❜❥✲①❢r s❡r✈✐❝❡ ✐s ✉s❡❞ ❝♦rr❡❝t❧②
// ♦✴✇ ❢❛✉❧t
B✹ : t❤r❡❛❞ ❛t wj✳❛❝q(pn) ⇒ ♥♦ ♦♥❣♦✐♥❣ wj✳❛❝q(pn) B✺ : t❤r❡❛❞ ❛t wj✳r❡❧(pn, pv) ⇒ ✭pn ✐♥ w.objsj ❛♥❞ ✐♥ w.reqsj✮ B✻ : t❤r❡❛❞ ❛t wj✳rxReq() ⇒ ♥♦ ♦♥❣♦✐♥❣ wj✳rxReq() Pr♦✈✐♥❣ ■♥✈ B✷✕B✻ ✐s str❛✐❣❤t❢♦r✇❛r❞ ♣r♦✈✐♥❣ ■♥✈ B✹✕B✻ ✐s tr✐✈✐❛❧ s♦♠❡ ❤❡❧♣❢✉❧ ♣r❡❞✐❝❛t❡s ❛r❡ ❣✐✈❡♥ ♥❡①t
SLIDE 20
❙♦♠❡ ❤❡❧♣❢✉❧ ♣r❡❞✐❝❛t❡s
s❛❢❡t② s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
P♦ss✐❜❧② ❤❡❧♣❢✉❧ ♣r❡❞✐❝❛t❡s ✐♥ ♣r♦✈✐♥❣ ■♥✈ B✷✕B✻ B✼ : ❢♦r❛❧❧ pn✱ ❡①❛❝t❧② ♦♥❡ ♦❢ t❤❡ ❢♦❧❧♦✇✐♥❣ ❤♦❧❞✿ ❢♦r♦♥❡✭j✿ pgValpn ❡①✐sts✮ ❢♦r❛❧❧✭j✿ ♥♦ pgValpn ❡①✐sts✮ ❛♥❞ ✭w.valpn ❡①✐sts✮ B✽ : valpn ❡①✐sts ⇒ valpn = lastWrite(βS,pn) B✾ : j.pgValpn ❡①✐sts ⇒ valpn = lastWrite(βS,pn)
SLIDE 21
❖✉t❧✐♥❡
♣r♦❣r❡ss s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❙✐♥❣❧❡✲❈♦♣② ❉✐str✐❜✉t❡❞ ❙❤❛r❡❞ ▼❡♠♦r② ■♠♣❧❡♠❡♥t❛t✐♦♥ Pr♦✈✐♥❣ t❤❡ ✐♠♣❧❡♠❡♥ts ❝♦♥❞✐t✐♦♥s
Pr♦❣r❛♠ ❩ ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ ❙❛❢❡t② ❛♥❛❧②s✐s Pr♦❣r❡ss ❛♥❛❧②s✐s
SLIDE 22
Pr♦♦❢ ♦❢ ♣r♦❣r❡ss✿ A✷✕A✸
♣r♦❣r❡ss s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❖❜❥✲①❢r s❡r✈✐❝❡ ♣r♦❣r❡ss ❤♦❧❞s ❜❡❝❛✉s❡ ✐t ✐s ✉s❡❞ ❝♦rr❡❝t❧②
- ✐✈❡♥ t❤✐s✱ ♣r♦♦❢ ♦ ❢A✷ ❛♥❞ A✸ ✐s str❛✐❣❤t❢♦r✇❛r❞
❙❡❡ t❡①t ❢♦r ❞❡t❛✐❧s
SLIDE 23
❆ss❡rt✐♦♥s t♦ ❡st❛❜❧✐s❤
♣r♦❣r❡ss s❝♦♣②✲❞s♠ ❛♥❛❧②s✐s
❚♦ s❛t✐s❢② s❡r✈✐❝❡✱ ♥❡❡❞ t♦ ♣r♦✈❡ ❩ s❛t✐s✜❡s A✶✕A✷ A✷ : ♦♥❣♦✐♥❣ j✳r❡❛❞(.) ❧❡❛❞s✲t♦ ♥♦t ♦♥❣♦✐♥❣ j✳r❡❛❞(.) A✸ : ♦♥❣♦✐♥❣ j✳✇r✐t❡(.) ❧❡❛❞s✲t♦ ♥♦t ♦♥❣♦✐♥❣ j✳✇r✐t❡(.)
SLIDE 24