Atomicity Barbara Liskov MIT CSAIL April 2007Xfer xfer(A, B, amt) A <- A – amt; B <- B + amt;all or nothing put all_or_nothing_put(data,X) flag <- careful_get(X.D0,buff); if flag = ok { careful_put(X.D1,data); careful_put(X.D0,data); } else { careful_put(X.D0,data); careful_put(X.D1,data); }all or nothing get all_or_nothing_get(data,X) flag <- careful_get(X.D0,data); if flag = ok return; careful_get(X.D1,data);salvage salvage(X) flag0<- careful_get(X.D0,buff0); flag1 <- careful_get(X.D1, buff1); if (flag0 = bad) {careful_put(X.D0,buff1);} if (flag1 = bad) {careful_put(X.D1,
View Full Document