Global snapshots 9
kazdý proces vyuzije 6 správ, triviálne to splna R
zatial sme ignorovali, co s obsahom kanálov (proces nemôze cítat priamo cez kanál)
- stav kanálu vypocítame z toho, co bolo poslané mínus to, co bolo prijaté
- pre kanál c platí:
- c.sent = c.received; c.state
t.j.
- c.state = c.sent ? c.received
- c.sent je lokálna tomu, co posiela
- c.received je lokálna tomu, co prijíma
- definujeme
c.state.rec = c.sent.rec ? c.received.rec
- takýto mechanizmus je dost neefektívny, lebo c.received, c.sent môzu byt velmi dlhé, no my potrebujeme len ich rozdiel
Modifikácia:
- ked proces zastaví cinnost, prv nez zaznamená svoj stav, pošle na kazdý výstupný kanál marker (znacku)