Atomicity Xfer all or nothing putall or nothing getsalvageMIT OpenCourseWarehttp://ocw.mit.edu 6.033 Computer System Engineering Spring 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.Atomicity Barbara LiskovMIT CSAILXfer xfer(A, B, amt)A <- A – amt;B <- B + amt;all or nothing putall_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 getall_or_nothing_get(data,X)flag <- careful_get(X.D0,data);if flag = ok return;careful_get(X.D1,data);salvagesalvage(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