Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
184
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. <!-- saved from url=(0050)http://translate.googleusercontent.com/translate_f --><html lang="hi-x-mtfrom-en" crossriderapp2258="true"><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Translated version of logical clock.doc</title><style>div.big{border-width: 2px 0 0;border-style: solid}div.small{border-width: 1px 0 0;border-style: solid;margin:0 0 2px}div.header {width:100%;height: 40px;padding: 0;text-align: center;}h1 {font-size: 22px;margin: 0;padding:6px;}div.main{width: 100%;top: 45px;bottom: 0;left: 0;overflow: auto;position:absolute}iframe.around{border-width:0}</style><script src="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/document_iterator.js"></script><script src="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/find_proxy.js"></script><script src="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/get_html_text.js"></script><script src="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/global_constants.js"></script><script src="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/name_injection_builder.js"></script><scriptsrc="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/number_injection_builder.js"></script><scriptsrc="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/string_finder.js"></script><scriptsrc="chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl/change_sink.js"></script><metaname="document_iterator.js"><meta name="find_proxy.js"><metaname="get_html_text.js"><meta name="global_constants.js"><metaname="name_injection_builder.js"><meta name="number_injection_builder.js"><metaname="string_finder.js"><meta name="change_sink.js"><style id="wrc-middle-css"type="text/css">.wrc_whole_window{display: none;position: fixed; z-index:2147483647;background-color: rgba(40, 40, 40, 0.9);word-spacing: normal;margin: 0px;padding:0px;border: 0px;left: 0px;top: 0px;width: 100%;height: 100%;line-height: normal;letter-spacing:normal;}.wrc_middle_main {font-family: Segoe UI, Arial Unicode MS, Arial, Sans-Serif;font-size:14px;width: 600px;height: auto;margin: 0px auto;margin-top: 15%; background: url(chrome-extension://icmlaeflemplmjndnaapfdbbnpncnbda/skin/images/background-body.jpg) repeat-x lefttop;background-color: rgb(39, 53, 62);}.wrc_middle_logo { background: url(chrome-extension://icmlaeflemplmjndnaapfdbbnpncnbda/skin/images/logo.jpg) no-repeat left bottom;width: 140px; height: 42px; color: orange; display: table-cell; text-align: right; vertical-align: middle;}.wrc_icon_warning {margin: 20px 10px 20px 15px;float: left;background-color:transparent;}.wrc_middle_title { color: #b6bec7;height: auto; margin: 0px auto;font-size:2.2em;white-space: nowrap;text-align: center;}.wrc_middle_hline { height: 2px;width: 100%;display: block;}.wrc_middle_description {text-align: center;margin: 15px;font-size: 1.4em;padding:20px;height: auto;color: white;min-height: 3.5em;}.wrc_middle_actions_main_div {margin-bottom:15px;text-align: center;}.wrc_middle_actions_blue_button {-moz-appearance: none;border-radius:7px;-moz-border-radius: 7px/7px;border-radius: 7px/7px;background-color: rgb(0, 173, 223)!important;display: inline-block;width: auto;cursor: Pointer;border: 2px solid#00dddd;}.wrc_middle_actions_blue_button:hover {background-color: rgb(0, 159, 212)!important;}.wrc_middle_actions_blue_button:active {background-color: rgb(0, 146, 200)
  • 2. !important;border: 2px solid #00aaaa;}.wrc_middle_actions_blue_button div {display: inline-block;width: auto;cursor: Pointer;margin: 3px 10px 3px 10px;color: white;font-size: 1.2em;font-weight: bold;}.wrc_middle_action_low {font-size: 0.9em;white-space: nowrap;cursor: Pointer;color:grey !important;margin: 10px 10px 0px 10px;text-decoration: none;}.wrc_middle_action_low:hover{color: #aa4400 !important;}.wrc_middle_actions_rest_div {padding-top: 5px;white-space:nowrap;text-align: center;}.wrc_middle_action {white-space: nowrap;cursor: Pointer;color: red!important;font-size: 1.2em;margin: 10px 10px 0px 10px;text-decoration:none;}.wrc_middle_action:hover {color: #aa4400 !important;}</style><script id="wrc-script-middle_window" type="text/javascript" language="JavaScript">var g_inputsCnt = 0;var g_InputThis= new Array(null, null, null, null);var g_alerted = false;/* we test the input if it includes 4 digits(input is a part of 4 inputs for filling the credit-card number)*/function is4DigitsCardNumber(val){varregExp = new RegExp([0-9]{4});return (val.length == 4 && val.search(regExp) == 0);}/* testing thewhole credit-card number 19 digits devided by three - symbols or exactly 16 digits without anydividers*/function isCreditCardNumber(val){if(val.length == 19){var regExp = new RegExp([0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4});return (val.search(regExp) == 0);}else if(val.length == 16){varregExp = new RegExp([0-9]{4}[0-9]{4}[0-9]{4}[0-9]{4});return (val.search(regExp) == 0);}returnfalse;}function CheckInputOnCreditNumber(self){if(g_alerted)return false;var value =self.value;if(self.type == text){if(is4DigitsCardNumber(value)){var cont = true;for(i = 0; i <g_inputsCnt; i++)if(g_InputThis[i] == self)cont = false;if(cont && g_inputsCnt <4){g_InputThis[g_inputsCnt] = self;g_inputsCnt++;}}g_alerted = (g_inputsCnt ==4);if(g_alerted)g_inputsCnt = 0;elseg_alerted = isCreditCardNumber(value);}returng_alerted;}function CheckInputOnPassword(self){if(g_alerted)return false;var value =self.value;if(self.type == password){g_alerted = (value.length > 0);}return g_alerted;}functiononInputBlur(self, bRatingOk, bFishingSite){var bCreditNumber =CheckInputOnCreditNumber(self);var bPassword = CheckInputOnPassword(self);if((!bRatingOk ||bFishingSite == 1) && (bCreditNumber || bPassword) ){var warnDiv =document.getElementById("wrcinputdiv");if(warnDiv){/* show the warning div in the middle of thescreen */warnDiv.style.left = "0px";warnDiv.style.top = "0px";warnDiv.style.width ="100%";warnDiv.style.height = "100%";document.getElementById("wrc_warn_fs").style.display =none;document.getElementById("wrc_warn_cn").style.display =none;if(bFishingSite)document.getElementById("wrc_warn_fs").style.display =block;elsedocument.getElementById("wrc_warn_cn").style.display = block;warnDiv.style.display= block;}}}</script><link rel="stylesheet" type="text/css" href="./Translated version of logicalclock.doc_files/iw_sprite.css"></head><body leftmargin="0" marginheight="0" rightmargin="0"style="margin-top:0"><div class="header"><h1>Translated version of logicalclock.doc</h1></div><div class="small" width="100%"></div><div class="big"width="100%"></div><div class="main"><script>(function(){(function(){functione(a){this.t={};this.tick=function(a,b,c){c=void 0!=c?c:(newDate).getTime();this.t[a]=[c,b]};this.tick("start",null,a)}var a=newe;window.jstiming={Timer:e,load:a};if(window.performance&&window.performance.timing){varb=window.performance.timing,a=window.jstiming.load,d=b.navigationStart,b=b.responseStart;0<d
  • 3. &&b>=d&&(a.tick("_wtsrt",void0,d),a.tick("wtsrt_","_wtsrt",b))}try{a=null,window.chrome&&window.chrome.csi&&(a=Math.floor(window.chrome.csi().pageT)),null==a&&window.gtbExternal&&(a=window.gtbExternal.pageT()),null==a&&window.external&&(a=window.external.pageT),a&&(window.jstiming.pt=a)}catch(f){}})();})()</script><script src="./Translated version of logicalclock.doc_files/translate_c.js"></script><script>_infowindowVersion=1;_intlStrings._originalText ="Original Englishtext:";_intlStrings._interfaceDirection="ltr";_intlStrings._interfaceAlign="left";_intlStrings._langpair="en|hi";_intlStrings._feedbackUrl="http://translate.google.com/translate_suggestion";_intlStrings._currentBy="Current translation on %1$s by%2$s";_intlStrings._unknown="unknown";_intlStrings._suggestTranslation="Contribute a bettertranslation" ;_intlStrings._submit="Contribute";_intlStrings._suggestThanks="Thank you forcontributing your translation suggestion to GoogleTranslate.";_intlStrings._reverse=false;</script><style type="text/css">.google-src-text {display:none !important} .google-src-active-text {display: block!important;color:black!important; font-size:12px!important;font-family:arial,sans-serif!important}.google-src-active-text a {font-size:12px!important}.google-src-active-text a:link {color:#00c!important;text-decoration:underline!important}.google-src-active-text a:visited {color:purple!important;text-decoration:underline!important}.google-src-active-text a:active {color:red!important;text-decoration:underline!important}</style><meta http-equiv="X-Translated-By" content="Google"><!--<base href="" target="_top">--><base href="." target="_top"><meta http-equiv="Content-Style-Type" content="text/css"><meta name="generator" content="Aspose.Words for Java11.3.0.0"><title> 1: </title><iframe src="./Translated version of logicalclock.doc_files/translate_un.htm" width="0" height="0" frameborder="0"style="width:0px;height:0px;border:0px;display:none;"></iframe><div><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Part 1: Theoretical foundations in distributedcomputing</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 1: </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Ch.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5 Theoretical foundations</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">5 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 4. size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A distributed system is (1) a collection of processes that are (2) spatially separated and(3) do not share a common memory and communicate with one another by (4) exchangingmessages with (5) arbitrary delays.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> (1) (2) spatially (3) (4) (5) .</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.2 Inherent limitations of a distributed system</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 5.2 </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A view is said to be</span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt; font-style:italic">coherent</span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">if all the observations of different processes are made at the samephysical time.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt; font-style:italic"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">A global state of a distributed system consists of the localstates of all the processes and messages in transit.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Absent of shared memory implies absent of a global clock.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Impact: It is impossible to havea coherent global state.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span
  • 5. style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.3 Lamport logicalclock</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.3Lamport </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:Wingdings;font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:happen before</span></span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 15pt; orphans:0;text-indent:-15pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">1)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">b two events occur at the same process</span></span> <spanstyle="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt 0pt 0pt 15pt;orphans:0; text-indent:-15pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">2)</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">2)</span></span> <spanstyle="font:7.0pt &#39;Times New Roman&#39;">&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">b for sending event andreceiving event of a</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt 0pt 0pt 15pt; orphans:0; text-indent:-15pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">3)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 6. size:14pt">3)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">if a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">b and b</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">cthen a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">c</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:Wingdings;font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">is a transitive relation.</span></span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">may be referred toas</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt; font-style:italic">causally affect</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt; font-style:italic"> </span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Concurrent events</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">a || b if (not a</span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">b) and (not b</span><span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times
  • 7. New Roman&#39;; font-size:14pt">a)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">| | ( </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">) (</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">)</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">For any two events: either a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">b orb</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">a or a || b.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> | |.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Fig.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">.</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.2 p.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.2 .</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">101.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">101.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><br style="page-break-before:always; clear:both"></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">General assumption: no two events occur at the same time.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Reason: no referencing globaltime to prove two events occurred at the same time.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;
  • 8. font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Logical clock:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Each process I maintains aninteger variable Xi</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">[IR1] An event occurs at Pi: Xi = Xi + 1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = 1 + [IR1] Pi </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">[IR2] When Pi receives amessage with time stamp (TS,j) from Pj:</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">[IR2] Pi .. (, ) :</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Xi = max(Xi, TS) + 1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = (, ) + 1</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Each event on Pi has an associated time stamp (TSi,I).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi (TSI, ) .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">TSi is the Xi right after the event(after applying [IR1] or [IR2].</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">TSI (IR1 IR2].</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Total ordering: Any two time stamps of different events can be totallyordered.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">
  • 9. : .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(TSi,I) &lt; (TSj,j) if (TSi &lt; TSj) or ((TSi = TSj) and (I &lt;j))</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(TSI, )(TSj, ) (TSI &lt;TSj) ((TSI TSj =) ( j &lt;))</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Logical time is a discrete virtual time.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi waits for a specific logicaltime (eg Xi = 5) is risky because Xi may jump over 5 (from Xi &lt; 5 to Xi &gt; 5.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( = 5) 55&lt;&gt; 5 ( .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.3.1 Limitations of Lamportslogical clock.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Lamport 5.3.1 .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Two events a and b with time stamps TSa and TSb</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> - tsa TSB </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">If a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">b then TSa &lt; TSb</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> TSA TSB &lt;</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times
  • 10. New Roman&#39;; font-size:14pt">The reverse is not necessary true.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">But, most of the time, welike:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, , :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If TSa &lt; TSb then a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">b.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">TSA &lt;TSB </span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Events a and b may not be causally related because each clock may independentlyadvance due to local events.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.4 vector clocks</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">5.4 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Vector clocks has the desirable property:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Two events a and b with time stamps TSa and TSb</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> - tsa TSB </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">a</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New
  • 11. Roman&#39;; font-size:14pt">b iff TSa &lt; TSb</span></span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> iff TSA &lt;TSB</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Vector clock:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Each process I maintains avector of an integer variable s X [1..n] .i.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> [1 .. n] . .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">X[i].i : the logical clock of process i.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[j].i : j =/ I , Pi s best guess oflogical time of Pj.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X [] : = / , .. .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Best guess: Pi knows directly from Pj or indirectly from other process.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : Pi ...</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Implementation rules:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">[IR1] An event occurs at Pi: X [ I] .i = X [ I ] .i + 1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">. [] = [] 1: Pi [] IR1</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;
  • 12. font-size:14pt">[IR2] When Pi receives a message with time stamp (TS,j) from Pj:</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">[IR2] Pi .. (, ):</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;&nbsp;&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[ I ].i = X[ I ].i + 1</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> [] . = [] + 1</span></span> </p><p style="margin:0pt; orphans:0;text-indent:32.5pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">For all k =/ I , X [k] .i = max(X [k] .i, TS [k] )</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = /, [] = ( []. ,[])</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Note: Sending and receiving a message is treated as anevent.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Each event on Pi has an associated time stamp(TSi,I).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi (TSI, ) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">TSi is the Xi right after the event (after applying [IR1] or [IR2]. )</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">TSI ([IR1] [IR2].)</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Assertion: At any instant: for all I and j X[ I ].i &gt;= X[ I].j</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: .[] &gt; = [] </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Fig.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">.</span></span> <span onmouseover="_tipon(this)"
  • 13. onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.5 p.105</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.5 p.105</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">TSa and TSb of events a and b.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">TSA TSB.</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Equal =: TSa = TSb iff For all I , TSa[ I ] = TSb[ I]</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> =: TSA= TSB iff , TSA [] = TSB []</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">=/ : TSa =/ TSb iff Exists I , TSa[ I ] =/ TSb[ I ]</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">= / TSA iff = TSB / , TSA [] = TSB /[]</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">&lt;=: TSa &lt;= TSb iff For all I , TSa[ I ] &lt;= TSb[ I]</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&lt;=:TSA &lt;= TSB iff , TSA [] &lt;= TSB []</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&lt;: TSa &lt; TSb iff TSa &lt;= TSb and TSa =/ TSb</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">: &lt;TSA &lt;TSB iff TSA &lt;=TSB TSA = / TSB</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&lt;/:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&lt;/:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Concurrent ||: TSa ||TSb iff TSa &lt;/ TSb and TSa &lt;/ TSb</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> | |: TSA | | TSB iff &lt;TSB / TSA TSA &lt;/ TSB</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"
  • 14. onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Note: &lt;= is a transitiverelation, but || is not.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">: &lt;= , | | .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">For example, [5,3] || [2,6] and [2,6]||[6,4] but [5,3] &lt; [6,4]</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , [5,3] | | [2,6] [2,6] | | [6,4],[5,3] &lt;[6,4]</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">For any two events, a and b</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Either a and b are causallyrelated (TSa &lt; TSb or TSb &lt; TSa)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> (TSA &lt;TSB TSB &lt;TSA)</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Or a and b areconcurrent.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Vector clocks: a</span> <spanstyle="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">b iff TSa &lt; TSb</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> iff TSA TSB &lt;</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.5 causal ordering of messages</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">5.5 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 15. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If send(M1)</span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">send(M2)</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> ( 1)</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (M2)</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then for every recipient Pi ofboth M1 and M2,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> M1 M2 Pi ,</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Receivei(M1)</span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Receivei(M2).</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Receivei ( 1)</span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Receivei(M2).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Fig.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">.</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.4 p.106</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.4 p.106</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">It s important that every process in charge of updating a replica receives and updatesthe object in the same order to maintain its consistency.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Abstraction:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 16. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi maintains message history Xi that Pi knows.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> Pi .</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">When Pi sends m toPj:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Put Xi on m, and send m.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> , .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Xi = Xi + m</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = + m</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Arrival of m atPj:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If Deliveredj(Xj) includes ToPj(Xi(m))</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> Deliveredj (Xj) ToPj ( ())</span></span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then deliver m</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"
  • 17. onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Else put m inbuffer.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">3.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">3.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">After Pj deliversm:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Xj = Xj + Xi(m) + m</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Xj = Xj + () + </span></span> </p><p style="margin:0pt 0pt 0pt18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Check buffer for possible delivery.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Implementation:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">How to implement Hi, Deliveredj(Hj), ToPj(Hi(m)).</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, (HJ) Deliveredj, ToPj (()) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">BSS protocol (messages are broadcast) p107</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( )p107</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 18. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">SES protocol (messages are point to point) p107</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( ) p107</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">BSS protocol (messages are broadcast) p107</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( ) p107</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Each process Pi maintains avector X[1..n].i: the message history that Pi knows.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> Pi : Pi [1 .. n] .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[ I ].i: # messages Pi hassent.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] :# Pi .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[j].i: # messages sent from Pj that Pi has delivered.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] :. .. Pi .</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_0.png" width="482" height="218" alt="" style="margin-left:0pt; margin-top:9pt; position:absolute; z-index:0"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_1.png" width="38" height="38" alt=""style="margin-left:9pt; margin-top:0pt; position:absolute; z-index:13"><img src="./Translatedversion of logical clock.doc_files/image_2.png" width="62" height="2" alt="" style="margin-left:36pt; margin-top:9pt; position:absolute; z-index:12"><img src="./Translated version of logicalclock.doc_files/image_3.png" width="86" height="74" alt="" style="margin-left:45pt; margin-top:9pt;position:absolute; z-index:2"><img src="./Translated version of logicalclock.doc_files/image_4.png" width="110" height="146" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:1"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_5.png" width="26" height="26" alt="" style="margin-
  • 19. left:27pt; margin-top:0pt; position:absolute; z-index:7"><img src="./Translated version of logicalclock.doc_files/image_3.png" width="86" height="74" alt="" style="margin-left:171pt; margin-top:9pt; position:absolute; z-index:6"><img src="./Translated version of logicalclock.doc_files/image_6.png" width="62" height="74" alt="" style="margin-left:144pt; margin-top:9pt; position:absolute; z-index:5"><img src="./Translated version of logicalclock.doc_files/image_7.png" width="206" height="2" alt="" style="margin-left:45pt; margin-top:9pt;position:absolute; z-index:3"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_8.png" width="50" height="38" alt="" style="margin-left:81pt; margin-top:9pt; position:absolute; z-index:11"><img src="./Translated version of logicalclock.doc_files/image_9.png" width="50" height="38" alt="" style="margin-left:162pt; margin-top:9pt; position:absolute; z-index:10"><img src="./Translated version of logicalclock.doc_files/image_10.png" width="38" height="38" alt="" style="margin-left:207pt; margin-top:0pt; position:absolute; z-index:9"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_11.png" width="26" height="38" alt="" style="margin-left:36pt; margin-top:0pt; position:absolute; z-index:8"><img src="./Translated version of logicalclock.doc_files/image_12.png" width="290" height="2" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:4"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">when broadcast a message m,Pi does:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , PI :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">put Xi on m</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[ I ].i++</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] + +</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-
  • 20. 18pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">2.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">2.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pj receives a message m withXi(m) on it from Pi.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.. Pi () .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><p style="margin:0pt 0pt 0pt 42.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(a)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">()</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">X[i].j = X[ I ].i(m) and</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] . = []. () </span></span> </p><pstyle="margin:0pt 0pt 0pt 42.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(b)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">()</span></span> <span style="font:7.0pt &#39;Times New Roman&#39;">&nbsp;</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[k].j &gt;= X[k].i(m), for all k, k =/ i.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X [] .&gt; = [] (). , , = / .</span></span></p><p style="margin:0pt 0pt 0pt 24pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then deliver m</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt 0pt 0pt 24pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Else put m in thebuffer.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 21. size:14pt">3.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">3.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">After Pj deliversm:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ..:</span></span> </p><p style="margin:0pt; orphans:0; text-indent:12pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi: X[ I ].j ++</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">PI: [] j + +</span></span> </p><p style="margin:0pt; orphans:0; text-indent:24pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Check for deliverable messages in the buffer.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2(a) ensures that Pj has delivered the message M from Pi.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">2 () .. Pi .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2(b) ensures that Pj has delivered all the messages M2 ” received by Pi before Pisends m.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2 () .. M2 "Pi .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">SES protocol (messages are point to point) p107</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( ) p107</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi maintains a matrixX[1..n,1..n].i</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> X [1 .. n, 1 .. n] . </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[j,k].i : #messages Pk has sent to Pj in the message history Xi</span></span> <span
  • 22. style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [, ] : # .. </span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[ I ,j].i : #messages from Pj toPi and Pi has delivered.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> [, ] : .. PI .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">4.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">4.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">When Pi sends m toPj:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Put Xi on m, and send m.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> , .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">X[j, I ].i = X[j, I ].i + 1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [, ] . = [, ] + 1</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Arrival of m atPj:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><p style="margin:0pt 0pt 0pt 42.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times
  • 23. New Roman&#39;; font-size:14pt">(a)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">()</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">X[j, I ].j = X[j, I ].i(m)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [, ] . = [j, ] ()</span></span> </p><pstyle="margin:0pt 0pt 0pt 42.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(b)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">()</span></span> <span style="font:7.0pt &#39;Times New Roman&#39;">&nbsp;</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X[j,k].j &gt;= X[j,k].i(m), for all k /= I ,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">X [, .&gt; = [, () , / =,</span></span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then deliver m</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Else put m inbuffer.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">After Pj deliversm:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ..:</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Xj = Xj + Xi(m) + m</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Xj = Xj + () + </span></span> </p><p style="margin:0pt 0pt 0pt18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Check buffer for possible delivery.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p
  • 24. style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Implementation of Xj = Xj + Xi(m) + m:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Xj = Xj + + () :</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">For all j,k, j /= I , X[j,k].j =max(X[j,k].j, X[j,k].i(m))</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> , / =, [, ] = ( [, ]. , [ ] . ())</span></span> </p><p style="margin:0pt 0pt 0pt18pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">X[j, I ].j = X[j, I ].j + 1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [] . = [j, ]. + 1.</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times New
  • 25. Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Part 2 : Termination detection and distributed snapshots</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 2: </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.6 global state</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">5.6 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">local state of pi : Lsi</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> : LSI</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Global state GS = {LS1.LS2, … , LSn}.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = {LS1.LS2, ... LSn}.</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New
  • 26. Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">send(mij) : sending event of m from pi to pj.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (mij): .. .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv(mij) : receiving event of mfrom pi to pj.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv (mij): .. .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Send(mij) belongs to LSi iff time(send(mij)) &lt; time(Lsi).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (mij) LSI iff ( (mij)) &lt; (LSI).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv(mij) belongs to LSj iff time(recv(mij)) &lt; time(LSj).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv (mij) LSj iff (recv (mij).)&lt; (LSj) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Lsi includes all sending and receiving events in the historybefore time(Lsi).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSI (LSI) .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Transit(Lsi,LSj) = {mij | send(mij)</span> <span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSiand recv(mij) /</span> <span style="font-family:PMingLiU; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSj }</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (LSI, LSj) = {mij | (mij) </span><span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">LSI recv (mij) /</span> <span style="font-family:PMingLiU;font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSj}</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 27. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Inconsistent(Lsi,LSj) = { mij | send(mij) /</span> <span style="font-family:PMingLiU;font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSi and recv(mij)</span> <span style="font-family:PMingLiU; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSj }</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (LSI, LSj) = {mij | mij ()/</span> <span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSI recv (mij) </span> <span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">LSj}</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Consistent GS iff for all I ,j, Inconsistent(Lsi,LSj) is empty.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> iff, , (LSI, LSj).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Fig.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">5.8 p.111</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">5.8 p.111</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">In a consistent GS, for every received message itscorresponding sending event is rec orded.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> , orded .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Transitless GS iff for all I ,j transit(Lsi,LSj) is empty.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , transitless iff (LSI, LSj).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Strongly consistent GS: consistent andtransitless.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : transitless.</span></span> </p><p style="margin:0pt; orphans:0;
  • 28. widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.6.1 Chandy-Lamport s consistent GS recording algorithm.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.6.1 Lamport.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A distribute algorithm (distributed snapshots) to capture a consistent globalstate.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Assumptions:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt 0pt 0pt 18.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(a)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">()</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">no FIFO channels</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt0pt 0pt 18.75pt; orphans:0; text-indent:-18.75pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(b)</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">()</span></span> <spanstyle="font:7.0pt &#39;Times New Roman&#39;">&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">messages can not trans-pass markers.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Flooding of markers</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 29. size:14pt">Marker goes through each channel only once.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">A process records its state whenit receives the marker for the first time, after recording the process floods the marker.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> rker ,.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Consistence proof:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">For every message m, Pi m</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pj,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , PI </span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">.. ,</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv(mij)</span> <spanstyle="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">LSj implies send(mij)</span> <span style="font-family:PMingLiU;font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Lsi.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Recv (mij) </span> <span style="font-family:PMingLiU; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSj (mij)</span> <spanstyle="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">LSI .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Two cases to consider:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Case 1: The first marker reaching Pj is from Pi.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1 : .. Pi .</span></span> </p><p
  • 30. style="margin:0pt; orphans:0; text-indent:48pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi marker</span> <spanstyle="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">(m Pj)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(..)</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">By (b), Pi sends m first then (taking the snapshot) sends t he marker.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(), PI.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Hence, send(mij)</span> <span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Lsi.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, (mij)</span> <span style="font-family:PMingLiU; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">LSI .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Case 2: The first markerreaching Pj is not from pi.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">2 : .. .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Pi marker</span> <span style="font-family:Wingdings; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(m Pj)</span> <spanstyle="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">marker Pk</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> </span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">..()</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n
  • 31. bsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Then: Pi marker</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(mPj)</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pk</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: Pi</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> ( ..)</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">As in Case 1, Pi sends m first then (taking the snapshot) sends themarker.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1 ( ) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">This ends t heproof.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Fig.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">.</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.9 p.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.9 .</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">113.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">113.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Distributed snapshots is usefulin detecting stable properties (such as termination, deadlock).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( ) .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"
  • 32. onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">A predicate P is a stableproperty</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">if P is true now, P is always true in the future.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Si: a coherent globalstate.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(the algorithm starts at Si).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">( ).</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">St: a coherent globalstate.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(the algorithm ends at St).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">( ).</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Sc: a recorded globalstate.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(distributed snapshots).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">( ).</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Seq: an actual sequence ofevents that bring the system from Si to St.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> : seq</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">That is, Si</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 33. size:14pt">Seq</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">St (this reallyhappens)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , </span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Seq</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> ( )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">There is a proof for the conclusion:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt 0pt 0pt 19.5pt; orphans:0; text-indent:-19.5pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">If the recorded state Sc is aconsistent global state</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then there exists a permutation of Seq: (seq1,Seq2) such that:</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> Seq : (seq1, SEQ2):</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Si</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Seq1</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Sc</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Seq2</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">St.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">Seq1</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">SEQ2</span> <span
  • 34. style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"></span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(this only theoreticallyhappens).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">( ).</span></span> </p><p style="margin:0pt 0pt 0pt 19.5pt; orphans:0; text-indent:-19.5pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(2)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">(2)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">If a stable property P is true inthe recorded state Sc</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then P is also true at St.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Conclusion:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If (1) the recorded state Sc is a consistent global state and</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (1) </span></span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <span style="font:7.0pt &#39;Times New Roman&#39;">&nbsp;</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">a stable property P is true in the recorded state Sc,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ,</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then P is also true at St and
  • 35. any state follows St.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Safety property: bad thingsnever happen.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Liveness property: good things eventually happen.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Liveness : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.7 cuts of a distributed computation.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.7 .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Cut: a set {c1, c2, … , cn } where ci is the cut event of Pi.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">: {C1, C2, ... cn} ci Pi.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A cut C can be a zig-zag line that connects the cut events.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> zig-zag .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Fig.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.10, p.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.10, .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">114.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">114.</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;
  • 36. font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Inonsistent cut events ci and cj:</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Inonsistent ci :</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_13.png"width="38" height="38" alt="" style="margin-left:144pt; margin-top:0pt; position:absolute; z-index:21"><img src="./Translated version of logical clock.doc_files/image_14.png" width="38"height="38" alt="" style="margin-left:99pt; margin-top:0pt; position:absolute; z-index:19"><imgsrc="./Translated version of logical clock.doc_files/image_15.png" width="374" height="158" alt=""style="margin-left:54pt; margin-top:9pt; position:absolute; z-index:14"></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_16.png" width="26" height="26" alt="" style="margin-left:162pt; margin-top:0pt; position:absolute; z-index:17"><img src="./Translated version of logicalclock.doc_files/image_17.png" width="242" height="86" alt="" style="margin-left:108pt; margin-top:0pt; position:absolute; z-index:18"><img src="./Translated version of logicalclock.doc_files/image_18.png" width="278" height="2" alt="" style="margin-left:99pt; margin-top:0pt; position:absolute; z-index:15"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_19.png" width="14" height="38" alt=""style="margin-left:198pt; margin-top:0pt; position:absolute; z-index:24"><img src="./Translatedversion of logical clock.doc_files/image_20.png" width="26" height="2" alt="" style="margin-left:180pt; margin-top:0pt; position:absolute; z-index:23"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_21.png"width="14" height="26" alt="" style="margin-left:225pt; margin-top:9pt; position:absolute; z-index:26"><img src="./Translated version of logical clock.doc_files/image_20.png" width="26"height="2" alt="" style="margin-left:207pt; margin-top:9pt; position:absolute; z-index:25"></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_22.png" width="290" height="2" alt="" style="margin-left:99pt; margin-top:9pt; position:absolute; z-index:16"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_23.png" width="38" height="38" alt=""style="margin-left:279pt; margin-top:0pt; position:absolute; z-index:22"><img src="./Translatedversion of logical clock.doc_files/image_24.png" width="38" height="38" alt="" style="margin-left:225pt; margin-top:0pt; position:absolute; z-index:20"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 37. size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">A cut is consistent if there exists no two inconsistent cutevents.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Consistent cut:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">For all ci, cj: not exists ei, ej: ( ci</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">ei</span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">ej</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">cj).</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> ci, : , ej: (ci</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Wingdings; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">ej</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> ).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Or.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">For all ci, cj: not</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">: ci, </span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">( ci</span> <span style="font-family:Wingdings; font-size:14pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">cj).</span></span> <span style="font-family:&#39;Times New
  • 38. Roman&#39;; font-size:14pt">(Ci <span style="font-family:Wingdings; font-size:14pt">).</span></span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">That is,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ,</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">No two cut events are causally related.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> causally .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Every two cut events areconcurrent.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">A set of concurrent cut eventsforms a consistent cut and vice versa.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Vector time of a cut:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">VTC = sup (VTc1, VTc2, … . VTcn)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">VTC = (VTc1, VTc2, VTcn....)</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Where sup is a component-wise maximum operation.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">VCT[ I ] = max((VTc1[ I ], VTc2[I ], … . VTcn[ I ]).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">VCT [] = ((VTc1 [], VTc2 [], ... VTcn []).</span></span> </p><p style="margin:0pt;
  • 39. orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Thm 5.2: A cut is consistent iff</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Thm 5.2: iff </span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">VTC = (VTc1[1], VTc2[2], … , VTcn[n]).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">VTC = (VTc1 [1], VTc2 [2], ...,VTcn []).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">5.8 termination detection</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">5.8 </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Model:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">States of processes: active or idle.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">An Active process may sendmessages to other processes.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">An idle process becomes active on receiving a message.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">An active process may becomeidle at any time.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p
  • 40. style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Termination:</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">for all process I , I is idle, and forevery channel h, h is empty.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> , , , .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Control messages C: those messages for termination detection.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Basic messages B: thosemessages for the computing.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> : .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Huang s algorithm:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Controlling agent (CA): the process monitoring the computation.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (CA) : .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">CA has aweight.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A process has a weight.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0;
  • 41. widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Basic messages has weights, control messages has weights, too.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , .</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">CA or each process maintains a weight W &gt;=0.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> &gt; = 0 .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Rule 1:</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 1:</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">CA or active process may senda message:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Divide W into W1 and W2.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> - W1 W2 .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(W,W1,W2 all &gt;0)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(, W1,W2 &gt; 0)</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">W = W1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = W1.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Send B(DW=W2) .</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> (DW W2 =).</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Rule 2:</span></span> <span style="font-family:&#39;Times
  • 42. New Roman&#39;; font-size:14pt"> 2:</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">P receives B(DW).</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> (DW) .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">W = W + DW.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> = W + DW.</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">If P is idle, then P becomes active.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Rule 3:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 3:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">An active process can become idle:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Send C(DW=W) toCA.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(DW =) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">W = 0.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = 0.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Rule 4:</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">4 :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">On receiving C(DW), CAdoes:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">
  • 43. (DW) , :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">W = W+DW</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> = W + DW</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">If W = 1 then conclude the termination.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = 1 .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Proof:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A: the set of weights of all active processes .</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">B: the set of weights of all basicmessages in transit.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">C: the set of weights of all control messages in transit.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">: .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Wc: weight ofCA.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Wc: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Invariants:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Invariants:</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">P 1: Wc +</span> <span
  • 44. style="font-family:PMingLiU; font-size:14pt"></span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> 1: WC +</span> <span style="font-family:PMingLiU; font-size:14pt"></span></span> <span style="font-family:PMingLiU; font-size:14pt"> </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">W of A, B, C = 1</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">A , , = 1</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">P2: for all W in A, B, C: W &gt; 0</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">P2 : , , : &gt; 0</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Hence,</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">,</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Safety property: No false termination.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Wc = 1 and P1 implies</span><span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">W of A, B, C = 0.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1 = wc P1 </span> <span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> , , = 0.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:PMingLiU; font-size:14pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">W of A, B, C = 0 and P2implies all W = 0, then implies all processes are idle and all channels are empty.</span></span><span style="font-family:PMingLiU; font-size:14pt"></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> , , = 0 p2 = 0 , .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Liveness property: True termination is detected eventually.</span></span> <span
  • 45. style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Liveness :.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(All W in A: W = 0 and B is empty) and (control messages are eventually delivered toCA, ie C eventually becomes empty.)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">( = 0 ) ( , ) </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Hence, eventually, Wc =1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, , WC= 1.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p
  • 46. style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Part 3.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 3.</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Distributed mutual-exclusion and quorum structures</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 47. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Two classes of distributed mutual-exclusion algorithms:</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt 0pt 0pt 13.8pt; orphans:0; text-indent:-13.8pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">1.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">token based (how to search thetoken)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ( )</span></span> </p><p style="margin:0pt 0pt 0pt 13.8pt; orphans:0; text-indent:-13.8pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">2.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">2.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">permissionbased.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">6.6 Lamports algorithm</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.6 Lamport </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">assume: fifo-channels.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">- : .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">The algorithm is on p.125</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> p.125 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 48. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Messages types:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Request: REQ(TS, I)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">: (, )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Reply: RPY(TS,I)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">: RPY (, )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Release: RLS(TS,I)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">: (, )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Time stamp of REQ is used as request id.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Time stamps of RPY and RLSare not related to the time stamp of REQ.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">RPY .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Each process maintains a priority request queue: REQ(TS,I) …..</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : (, ).....</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Entering CS conditions:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 49. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">[L1] Pi has received a message (not necessary a RPY) with time stamp larger than thetime stamp of its own request.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">[L1] Pi ( RPY) .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">[L2] Pis request is at the top ofits request queue.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">[L2] .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><br style="page-break-before:always; clear:both"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Correctness:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Theorem 6.1.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.1 .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">The proof is bycontradiction.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Assume: Pi and Pj are in CS.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">: .. .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Their requests for the CS are REQ(TSi,I), REQ(TSj,j).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (TSI, ) , (TSj,).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Without loss of generality, assume: REQ(Tsi,I) &lt; REQ(TSj,j).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , : (TSI, ) &lt; (TSj,).</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times
  • 50. New Roman&#39;; font-size:14pt">-----(1)</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">----- (1)</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">By [L1] from Pj, there is a message X(Tsi,I),</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">[L1] .. , (TSI, ),</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">such that REQ(TSj,j) &lt; X(Tsi,I).</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> (TSj, ) &lt; (TSI, ).</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">------(2)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">------ (2)</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">By (1) and (2), REQ(Tsi,I) &lt; X(TSi,I)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> (1) (2), (TSI, ) &lt; (TSI ,)</span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Therefore, by FIFO channelsassumption, when Pj receives X(TSi,I), Pj must already receive REQ(TSi,I).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">, , .. (TSI, ) , .. (TSI, ).</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">By [L2], REQ(TSj,j) can not be at the top of the queue.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> [L2, (TSj, ).</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Performance:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Message complexity: 3(N-1) messages per CS</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : 3 ( 1) </span></span> </p><p
  • 51. style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Synchronization delay:T.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :.</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Can fifo-channels assumptionbe removed?</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ?</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Can message complexity be reduced?</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> ?</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><brstyle="page-break-before:always; clear:both"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.7 Ricard-Agrawalaalgorithm</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">6.7 - Agrawala</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Assume: non fifo-channels.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> : .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">Message complexity: 2(N-1).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : 2 ( 1).</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Synchronization delay:T</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Release messages are merged
  • 52. into reply messages.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">The algorithm is on p.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">128.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">128.</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">R1: Pi sends a REQ(TSi,I) to allother processes to request.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">R1: Pi (TSI, ) .</span></span> </p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">R2: Pj blocks a reply forREQ(TSi,I) when</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">R2: .. (TSI, )</span></span> </p><p style="margin:0pt 1.3pt 0pt 19.8pt; orphans:0;text-indent:-19.8pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(1)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">(1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pj is requesting, REQ(TSj,j) &lt;REQ(TSi,I), or</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.. , (TSj, ) &lt; (TSI, ), </span></span> </p><p style="margin:0pt 1.3pt 0pt 19.8pt;orphans:0; text-indent:-19.8pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <spanstyle="font:7.0pt &#39;Times New Roman&#39;">&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pj is in the CS; otherwise, sends a reply.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">.. , , .</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;
  • 53. widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">R3: Pi enters cs when it get a reply (like a permission) from all otherprocesses.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">R3: ( ) .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">R4: Pi sends blocked replies when it exits from cs.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">R4: Pi .</span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">The execution of the cs followsthe order of the time stamps of the requests.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 1.3pt 0pt0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Correctness:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">:</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Theorem 6.2.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">6.2 .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">Two requests: REQ(TSi,I) &lt; REQ(TSj,j).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : (TSI, ) &lt; (TSj, ).</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">----- (a)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">----- ()</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">There are only two cases when Pi sends REQ(TSi,I):</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> Pi (TSI, ):</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 54. size:14pt">(1): Pi has received REQ(TSj,j).</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(1): Pi (TSj, ) .</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then, REQ(TSj,j) &lt; REQ(TSi,I), a contradiction to (a).</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">, (TSj, ) &lt; (TSI, ), ().</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2): Pi will receive REQ(TSj,j).</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">(2): Pi (TSj, ) .</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Then, when Pi receives REQ(TSj,j), by (a), Pi blocks the reply unless it exits from thecs</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> , Pi () (TSj, ), , PI </span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Therefore, Pi must enter cs then exist from it for REQ(TSi,I) first before Pj can entercs</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">, PI (TSI, ) .. </span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">The algorithm is claimed to be optimal because 2 messages seems necessarybetween Pi and Pj for Pi requests and exits from cs.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> 2 .. .</span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">The problem: is it necessary thatPi must request to Pj and inform Pj from exiting cs</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">: Pi .. .. </span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><br style="page-break-before:always;clear:both"></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 55. size:14pt">6.8.Maekawas algorithm.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">6.8.Maekawa .</span></span> </p><p style="margin:0pt 1.3pt 0pt0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Two differences from previous algorithms:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 19.8pt; orphans:0; text-indent:-19.8pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Request set of a process doesnot include all other processes.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 1.3pt 0pt 19.8pt;orphans:0; text-indent:-19.8pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">(2)</span></span> <spanstyle="font:7.0pt &#39;Times New Roman&#39;">&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">A process can only send out a reply (permission) at a time.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> () .</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">The construction of requestsets</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M1:</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">I,j, Ri</span> <span style="font-family:Symbol; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Rj</span> <span style="font-family:Symbol; font-size:14pt"></span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> 1: <span style="font-family:Symbol; font-size:14pt">,</span>
  • 56. ,</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span> <span style="font-family:Symbol;font-size:14pt"></span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:Symbol; font-size:14pt"></span></span> <span style="font-family:Symbol; font-size:14pt"></span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M2:</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">I, Pi</span> <span style="font-family:Symbol; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Ri</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M2:</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">, PI </span> <span style="font-family:Symbol; font-size:14pt"></span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M3:</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">I, |Ri| = K</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt"> 3: </span> <span style="font-family:Symbol; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> = </span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M4: Each process belongs to Krequest sets.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">M4: .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">M1 is for safety property.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">M1 .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">M2 is to reduce messages.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">M2 .</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">M3: request sets are equal insize (the same work for entering cs)</span></span> <span style="font-family:&#39;Times New
  • 57. Roman&#39;; font-size:14pt"> 3: ( )</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt">M4: all processes have the same responsibility in grantingpermission.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">M4: .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">The grid structure is an example.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:14pt"> .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">The algorithm is on p.131.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> p.131 .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">R2: Granting cs: Pj sends out its permission to Pi when its permission is on handotherwise pending the REQ.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">R2 : .. .</span></span> </p><p style="margin:0pt 1.3pt0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">R5: Pj sends permission to the pending REQ.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">R5: .. .</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">The algorithm is deadlock-prone because the pending of REQs.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> REQs.</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span
  • 58. style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Performance</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">|Ri| =</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">N</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> | | =</span> <span style="font-family:Symbol; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"></span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">3</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">N per cs</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">3</span> <span style="font-family:Symbol; font-size:14pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> </span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Syn Delay: 2T</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Syn : 2T</span></span></p><p style="margin:0pt 1.3pt 0pt 19.8pt; orphans:0; text-indent:-19.8pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">(1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">return permission (2) sendpermission to the pending REQ.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">(2) .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"><br style="page-break-before:always; clear:both"></p><p style="margin:0pt1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Handling ofdeadlock:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> :</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">FAILED message: indicating that Pi cannot grant the request because the request haslower priority.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : Pi .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;
  • 59. widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:14pt">INQUIRE message: asking a site to yield the permission.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><pstyle="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">YIELD message: yielding apermission.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"> : .</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">Maximum # of messages per cs: 5</span> <span style="font-family:Symbol; font-size:14pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">N</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:14pt"># : 5 N</span> <span style="font-family:Symbol; font-size:14pt"></span></span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">Pi REQ Pj INQUIRE Pk YIELDPj GRANT Pi RELEASE Pj</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt"> .. .. ..</span></span> </p><p style="margin:0pt 1.3pt 0pt 0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 1.3pt 0pt 0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times New
  • 60. Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Part 5 Checkpointing andrecovery</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">5 Checkpointing </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Backward recovery (vs. forwardrecovery).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( ).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 61. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">State-based approach (vs. operational approach).</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( ).</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Single process ckpting and recovery is simple, straightforward.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpting , .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Ckpting and recovery indistributed computing is complicated .</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">Ckpting .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">12.6</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">12.6</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">orphan messages</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">(having receiver but no sender)</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">( )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_25.png"width="218" height="110" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:27"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_26.png" width="50" height="62" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:33"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:99pt; margin-top:0pt;position:absolute; z-index:31"><img src="./Translated version of logicalclock.doc_files/image_28.png" width="2" height="2" alt="" style="margin-left:126pt; margin-top:9pt;position:absolute; z-index:30"><img src="./Translated version of logicalclock.doc_files/image_29.png" width="182" height="2" alt="" style="margin-left:63pt; margin-top:9pt; position:absolute; z-index:28"></p><p style="margin:0pt; orphans:0; widows:0"><span
  • 62. style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:162pt; margin-top:9pt; position:absolute; z-index:32"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_29.png" width="182" height="2" alt=""style="margin-left:63pt; margin-top:0pt; position:absolute; z-index:29"></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">lost messages</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">(having sender but no receiver)</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">( )</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:37"><img src="./Translated version of logicalclock.doc_files/image_30.png" width="218" height="122" alt="" style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:34"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_26.png" width="50" height="62" alt=""style="margin-left:99pt; margin-top:0pt; position:absolute; z-index:39"><img src="./Translatedversion of logical clock.doc_files/image_31.png" width="170" height="2" alt="" style="margin-left:63pt; margin-top:0pt; position:absolute; z-index:35"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:99pt; margin-top:0pt; position:absolute; z-index:38"><img src="./Translated version of logicalclock.doc_files/image_31.png" width="170" height="2" alt="" style="margin-left:63pt; margin-top:9pt; position:absolute; z-index:36"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;
  • 63. orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">live locks</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">(message in transit may cause this problem.)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">( .)</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:306pt; margin-top:9pt; position:absolute; z-index:49"><img src="./Translated version of logicalclock.doc_files/image_32.png" width="206" height="122" alt="" style="margin-left:252pt; margin-top:0pt; position:absolute; z-index:46"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:43"><img src="./Translated version of logicalclock.doc_files/image_30.png" width="218" height="122" alt="" style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:40"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_33.png" width="14" height="50" alt=""style="margin-left:315pt; margin-top:0pt; position:absolute; z-index:52"><img src="./Translatedversion of logical clock.doc_files/image_34.png" width="158" height="2" alt="" style="margin-left:270pt; margin-top:0pt; position:absolute; z-index:47"><img src="./Translated version of logicalclock.doc_files/image_33.png" width="14" height="50" alt="" style="margin-left:126pt; margin-top:0pt; position:absolute; z-index:45"><img src="./Translated version of logicalclock.doc_files/image_35.png" width="146" height="2" alt="" style="margin-left:72pt; margin-top:0pt; position:absolute; z-index:41"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_19.png" width="14" height="38" alt=""style="margin-left:297pt; margin-top:9pt; position:absolute; z-index:51"></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_36.png"width="14" height="26" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:56"><img src="./Translated version of logical clock.doc_files/image_37.png" width="14"height="26" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:55"><imgsrc="./Translated version of logical clock.doc_files/image_37.png" width="14" height="26" alt=""style="margin-left:315pt; margin-top:9pt; position:absolute; z-index:54"><img src="./Translatedversion of logical clock.doc_files/image_36.png" width="14" height="26" alt="" style="margin-left:315pt; margin-top:9pt; position:absolute; z-index:53"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:288pt; margin-
  • 64. top:9pt; position:absolute; z-index:50"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:99pt; margin-top:9pt;position:absolute; z-index:44"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_31.png" width="170" height="2" alt="" style="margin-left:270pt; margin-top:0pt; position:absolute; z-index:48"><img src="./Translated version of logicalclock.doc_files/image_35.png" width="146" height="2" alt="" style="margin-left:72pt; margin-top:0pt; position:absolute; z-index:42"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">12.7 Consistent set of ckpts</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">12.7 ckpts </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Consistent ckptsConsistent snapshots</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> ckpts</span></span> </p><p style="margin:0pt; orphans:0; text-indent:36pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">No orphan messages</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Strongly consistent ckpts Strongly consistent snapshots</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpts</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">No orphan messagesand</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"></span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">No lost messages.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 65. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">A simple method for consistent ckpting.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpting .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Each process takes a ckpt afterevery message sent.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> ckpt .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">The set of the latest ckpts is consistent.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpts .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Simple butexpansive.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">12.8 synchronous ckpting and recovery</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> 12.8 ckpting </span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Synchronous Coordinatedckpting.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">ckpting .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">The algorithm.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Assume: FIFO channels, no process fails during the execution of thealg.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: ,ALG .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Stable storages are available.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-
  • 66. text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Two phases:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">The first phase: recursively asking the cohorts to take tentative ckpts.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : ckpts.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translatedversion of logical clock.doc_files/image_38.png" width="74" height="26" alt="" style="margin-left:135pt; margin-top:9pt; position:absolute; z-index:90"><img src="./Translated version of logicalclock.doc_files/image_21.png" width="14" height="26" alt="" style="margin-left:135pt; margin-top:9pt; position:absolute; z-index:89"><img src="./Translated version of logicalclock.doc_files/image_39.png" width="50" height="26" alt="" style="margin-left:99pt; margin-top:9pt; position:absolute; z-index:88"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_38.png" width="74" height="26" alt=""style="margin-left:99pt; margin-top:9pt; position:absolute; z-index:93"><img src="./Translatedversion of logical clock.doc_files/image_21.png" width="14" height="26" alt="" style="margin-left:99pt; margin-top:9pt; position:absolute; z-index:92"><img src="./Translated version of logicalclock.doc_files/image_40.png" width="62" height="26" alt="" style="margin-left:54pt; margin-top:9pt; position:absolute; z-index:91"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_41.png" width="26" height="38" alt=""style="margin-left:54pt; margin-top:9pt; position:absolute; z-index:95"><img src="./Translatedversion of logical clock.doc_files/image_42.png" width="38" height="38" alt="" style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:94"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">The second phase: after all tentative ckpts are taken successfully, recursively make thetentative ckpts permanent.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> ckpts , ckpts .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span
  • 67. class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Optimization: minimize the number of ckpts taken.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: ckpts .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">-1: the smallest label (sequence number)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">-1: ( )</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_43.png" width="314" height="146" alt="" style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:57"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_44.png" width="26" height="86" alt=""style="margin-left:180pt; margin-top:9pt; position:absolute; z-index:66"><img src="./Translatedversion of logical clock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:72"><img src="./Translated version of logicalclock.doc_files/image_45.png" width="14" height="14" alt="" style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:71"><img src="./Translated version of logicalclock.doc_files/image_46.png" width="14" height="14" alt="" style="margin-left:36pt; margin-top:0pt; position:absolute; z-index:70"><img src="./Translated version of logicalclock.doc_files/image_44.png" width="26" height="86" alt="" style="margin-left:162pt; margin-top:9pt; position:absolute; z-index:65"><img src="./Translated version of logicalclock.doc_files/image_44.png" width="26" height="86" alt="" style="margin-left:144pt; margin-top:9pt; position:absolute; z-index:64"><img src="./Translated version of logicalclock.doc_files/image_44.png" width="26" height="86" alt="" style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:63"><img src="./Translated version of logicalclock.doc_files/image_44.png" width="26" height="86" alt="" style="margin-left:90pt; margin-top:9pt; position:absolute; z-index:62"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:99pt; margin-top:0pt;position:absolute; z-index:60"><img src="./Translated version of logicalclock.doc_files/image_47.png" width="266" height="2" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:58"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_48.png" width="38" height="38" alt=""style="margin-left:117pt; margin-top:9pt; position:absolute; z-index:116"><img src="./Translatedversion of logical clock.doc_files/image_49.png" width="38" height="38" alt="" style="margin-left:171pt; margin-top:9pt; position:absolute; z-index:115"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_50.png"width="38" height="38" alt="" style="margin-left:81pt; margin-top:0pt; position:absolute; z-
  • 68. index:114"><img src="./Translated version of logical clock.doc_files/image_51.png" width="14"height="38" alt="" style="margin-left:198pt; margin-top:9pt; position:absolute; z-index:67"></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_37.png" width="14" height="26" alt="" style="margin-left:36pt; margin-top:9pt; position:absolute; z-index:69"><img src="./Translated version of logicalclock.doc_files/image_36.png" width="14" height="26" alt="" style="margin-left:36pt; margin-top:9pt; position:absolute; z-index:68"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:135pt; margin-top:9pt; position:absolute; z-index:61"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_47.png" width="266" height="2" alt=""style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:59"></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Last_label_recv(Y</span> <span style="font-family:Wingdings; font-size:12pt"></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">X) = ml (if m exists sincelast ckpt) or – 1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Last_label_recv <span style="font-family:Wingdings; font-size:12pt">(</span> ) = (ckpt ) - 1.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">First_label_sent(Y</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">X) =ml (if m exists since last ckpt) or -1.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">First_label_sent (</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">) = -1 ( ckpt ).</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">ckpt_cohortX = {Y| last_label_recv(Y</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">X) &gt; -1}</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">ckpt_cohortX = {Y | last_label_recv (</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">)&gt; -1}</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <span
  • 69. onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">When X takes a ckpt, X must ask those Y in ckpt-cohortX to check if taking a ckpt isnecessary.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpt , ckpt cohortX ckpt .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">If last-label-recv(Y</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">X)&gt;= first-label-sent(Y</span> <span style="font-family:Wingdings; font-size:12pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">X ) &gt; -1</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> - recv (</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">)&gt; = (</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">) -1&gt;</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Then Y must take a ckpt.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> Y ckpt .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_52.png"width="518" height="146" alt="" style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:73"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_53.png" width="206" height="50" alt="" style="margin-left:99pt; margin-top:9pt; position:absolute; z-index:118"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:81pt; margin-top:9pt;position:absolute; z-index:81"><img src="./Translated version of logicalclock.doc_files/image_45.png" width="14" height="14" alt="" style="margin-left:45pt; margin-top:9pt; position:absolute; z-index:77"><img src="./Translated version of logicalclock.doc_files/image_46.png" width="14" height="14" alt="" style="margin-left:36pt; margin-top:9pt; position:absolute; z-index:76"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_54.png" width="38" height="86" alt=""style="margin-left:180pt; margin-top:0pt; position:absolute; z-index:85"><img src="./Translatedversion of logical clock.doc_files/image_55.png" width="50" height="86" alt="" style="margin-left:117pt; margin-top:0pt; position:absolute; z-index:84"><img src="./Translated version of logicalclock.doc_files/image_55.png" width="50" height="86" alt="" style="margin-left:90pt; margin-
  • 70. top:0pt; position:absolute; z-index:83"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:45pt; margin-top:0pt;position:absolute; z-index:78"><img src="./Translated version of logicalclock.doc_files/image_56.png" width="302" height="2" alt="" style="margin-left:63pt; margin-top:0pt; position:absolute; z-index:74"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_57.png" width="122" height="38" alt="" style="margin-left:207pt; margin-top:0pt; position:absolute; z-index:86"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_27.png" width="2" height="26" alt=""style="margin-left:99pt; margin-top:0pt; position:absolute; z-index:87"><img src="./Translatedversion of logical clock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:180pt; margin-top:0pt; position:absolute; z-index:82"><img src="./Translated version of logicalclock.doc_files/image_58.png" width="26" height="26" alt="" style="margin-left:36pt; margin-top:0pt; position:absolute; z-index:80"><img src="./Translated version of logicalclock.doc_files/image_59.png" width="26" height="26" alt="" style="margin-left:36pt; margin-top:0pt; position:absolute; z-index:79"><img src="./Translated version of logicalclock.doc_files/image_56.png" width="302" height="2" alt="" style="margin-left:63pt; margin-top:9pt; position:absolute; z-index:75"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">12.8.2 the rollback recovery alg.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">12.8.2 ALG.</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Assume: the ckpting and recovery are not concurrentlyinvoked.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: ckpting .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Consider: minimize the number of processes rollbacked.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : rollbacked.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">See fig.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 71. size:12pt"> .</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">12.8 p.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">12.8 .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">313.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">313.</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Two phases:</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> :</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">1</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:8pt; vertical-align:super">st</span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">phase: prepare torollback.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">1</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:8pt;vertical-align:super"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">2</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:8pt;vertical-align:super">nd</span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">phase: rollback.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">2</span> <span style="font-family:&#39;Times New Roman&#39;;font-size:8pt; vertical-align:super"> </span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">: .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_60.png"width="542" height="242" alt="" style="margin-left:9pt; margin-top:9pt; position:absolute; z-index:96"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_61.png" width="230" height="38" alt="" style="margin-left:234pt; margin-top:0pt; position:absolute; z-index:113"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_27.png" width="2" height="26" alt=""style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:105"><img src="./Translatedversion of logical clock.doc_files/image_45.png" width="14" height="14" alt="" style="margin-left:27pt; margin-top:0pt; position:absolute; z-index:104"><img src="./Translated version of logicalclock.doc_files/image_46.png" width="14" height="14" alt="" style="margin-left:18pt; margin-
  • 72. top:0pt; position:absolute; z-index:103"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:198pt; margin-top:9pt; position:absolute; z-index:100"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_62.png" width="86" height="98" alt=""style="margin-left:198pt; margin-top:0pt; position:absolute; z-index:110"><img src="./Translatedversion of logical clock.doc_files/image_63.png" width="74" height="98" alt="" style="margin-left:243pt; margin-top:0pt; position:absolute; z-index:107"><img src="./Translated version oflogical clock.doc_files/image_62.png" width="86" height="98" alt="" style="margin-left:162pt;margin-top:0pt; position:absolute; z-index:106"><img src="./Translated version of logicalclock.doc_files/image_64.png" width="362" height="2" alt="" style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:97"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_65.png" width="278" height="38" alt=""style="margin-left:261pt; margin-top:9pt; position:absolute; z-index:111"><img src="./Translatedversion of logical clock.doc_files/image_66.png" width="206" height="38" alt="" style="margin-left:72pt; margin-top:0pt; position:absolute; z-index:109"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_67.png"width="38" height="50" alt="" style="margin-left:279pt; margin-top:0pt; position:absolute; z-index:108"></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logicalclock.doc_files/image_68.png" width="38" height="38" alt="" style="margin-left:234pt; margin-top:0pt; position:absolute; z-index:117"><img src="./Translated version of logicalclock.doc_files/image_58.png" width="26" height="26" alt="" style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:102"><img src="./Translated version of logicalclock.doc_files/image_59.png" width="26" height="26" alt="" style="margin-left:27pt; margin-top:9pt; position:absolute; z-index:101"><img src="./Translated version of logicalclock.doc_files/image_27.png" width="2" height="26" alt="" style="margin-left:180pt; margin-top:9pt; position:absolute; z-index:99"></p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><imgsrc="./Translated version of logical clock.doc_files/image_69.png" width="218" height="50" alt=""style="margin-left:144pt; margin-top:9pt; position:absolute; z-index:112"><img src="./Translatedversion of logical clock.doc_files/image_64.png" width="362" height="2" alt="" style="margin-left:45pt; margin-top:0pt; position:absolute; z-index:98"></p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;
  • 73. orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">m is the last message sent before the last permanent ckpt .</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ckpt .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">last_label_sent ( x</span><span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">y ) = ml</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">last_label_sent (x</span> <span style="font-family:Wingdings;font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">)= </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">rollback_cohort.x = {y| x can send messages toy.}</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">rollback_cohort.x = {y | x y .}</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Note: when failure occurs process x might not know whether it has sent messagesto y or not after the last ckpt.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">: ckpt y .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">When x prepares to rollback, x must ask those y inrollback_cohort.x to prepare rollback by sending a request with last_label_sent (x</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">y ) on the request.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> , x rollback_cohort.x ylast_label_sent (, <span style="font-family:Wingdings; font-size:12pt">)</span>.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">If last_label_recv (x</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">y )&gt; last_label_sent (x</span> <span style="font-family:Wingdings; font-size:12pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">y ) then y should prepare torollback.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">
  • 74. last_label_recv (x</span> <span style="font-family:Wingdings; font-size:12pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">)&gt; last_label_sent (</span><span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Y) y .</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">That is, if y has received a message that was sent by x afterxs last permanent ckpt.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> , y ckpt .</span></span> </p><p style="margin:0pt 0pt 0pt 18pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span
  • 75. style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Part 6 Commit protocol and Voting protocol</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> 6 </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Ch.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"></span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">13 fault tolerance</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">13 </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Commit protocol (backwardrecovery)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( )</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Voting protocol (forward approach)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( )</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 76. size:12pt">13.3 atomic action: undividable and uninterruptible operations</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">13.3 : undividableuninterruptible </span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">during the operations:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> :</span></span> </p><p style="margin:0pt 0pt 0pt 18pt;orphans:0; text-indent:-18pt; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">1.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">1.</span></span> <spanstyle="font:7.0pt &#39;Times New Roman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">not aware the existence of other processes.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">2.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">2.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">not communicating with other processes</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> </span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">3.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">3.</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">instantaneous.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">.</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Commit: the effect of the action is permanent.</span></span> <span style="font-
  • 77. family:&#39;Times New Roman&#39;; font-size:12pt">: .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Abort: non of the effect persist.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">:Persis .</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">(</span> <span style="font-family:PMingLiU; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">)</span></span> <span style="font-family:PMingLiU; font-size:12pt"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">()</span></span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">For single process: atomic action.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">For multiprocesses: atomictransaction.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Multiprocesses - .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Globalatomicity.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> atomicity.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Commit protocol: enforce globalatomicity.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : atomicity .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Goal: to have all processes agree either to commit or to abort atransaction.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">No such protocol under
  • 78. bounded number of messages.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Gray s two-phase commit protocol (a blocking protocol)</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( )</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">A coordinator +cohorts.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Assume: stable storage available for each process.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Write-ahead log protocol used(write undo&amp;redo log before writing)</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> ( )</span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">p.334 phase 1 phase 2.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">p.334 1 2.</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">p.335 sitefailures</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">p.335 </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">13.6 VotingProtocol</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">13.6 </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">It is desirable that the sites
  • 79. continue to operate even when other sites have crashed, or at least one portion should continue tooperate after the system has partitioned.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> , .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Every replica is assigned a certain number of votes.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">The algorithm P.344.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> 344..</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">V: total number of votes</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">R: read quorum</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">W: writequorum</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">R+w &gt; v; w &gt; v/2</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">+ &gt;, w&gt; / 2</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">A non-null intersection between every read quorum and write quorum.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span
  • 80. style="font-family:&#39;Times New Roman&#39;; font-size:12pt">A non-null intersection betweenevery two write quorums.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> quorums .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Version number is used to decide which copy is the most updated.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">p.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">.</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">345</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">345</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">design issues:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">how to assign votes</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">how to select r and w.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> w.</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p
  • 81. style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Part 7 Security</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> 7 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Ch.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"></span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">15 Data Security</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">15 </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 82. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Terms:</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Cryptology: the science of designing &amp; breaking crypto-systems.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: - .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Cryptography:</span> <span style="font-family:PMingLiU; font-size:12pt"></span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">:</span><span style="font-family:PMingLiU; font-size:12pt"></span></span> </p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Crypto-analysis:</span> <span style="font-family:PMingLiU;font-size:12pt"></span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> :</span> <span style="font-family:PMingLiU; font-size:12pt"></span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Authentication: to verify whether a user is indeed what he claimed tobe.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Authorization: to decide what access rights a specific user has.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">: .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Plaintext:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Plaintext:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">C i pher -text:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> pher :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"
  • 83. style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Encryption: plaintext – (+key)</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">cipher-text.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">:( +)</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">ciphe, - .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Decryption: cipher-text –(+key)</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">plaintext.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : - ( +)</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">If the key is the same for both encryption and decryption: symmetricsystems.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Otherwise: asymmetric systems.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">: .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Protection measure: how difficult in finding the keys.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">To be secure &amp; robust:remain secure if the most desirable side information (except the keys) is available.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : ().</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Cipher-text only attack: no side information.</span></span>
  • 84. <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Known-plaintext attack:p.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> :.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">406.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">406.</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Chosen-plaintext attack: p.</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> : .</span></span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">407.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">407.</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Design principles:</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> :</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Early: breaking dependencies as much randomness as possible p.407.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> p.407 randomness.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Modern: exhaustive search principles: need exhaustive search for a space todetermine the keys.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">: : .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Conventional system: alphabetchar.</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">another alphabet char.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : </span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0">
  • 85. <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Modern system: bit string</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">another bit string.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> : </span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">.</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">Open design: only the keys are kept secret.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Underlying encryption and decryption techniques are open to thepublic.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Asymmetric system.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Two keys ke and kd.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Private key system: both ke and kd are kept secret.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> : .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Public key system: ke is knownto the public and kd is kept secret.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> : .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Key distribut ion problem: a small secret communication channel is required for theprivate key system.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 86. size:12pt"> distribut : .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Ke is usually made public via magazines for the public key system.</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">15.6.2 RSA method in deriving ke and kd pair.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">15.6.2 .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Plaintext</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">blocks of integers between 0~n-1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">Plaintext 0 ~ n-1 integers </span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"></span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">M : 0 ~ n-1</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">: 0 ~ n-1</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">C = M**e mod n (e,n) known to the public.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> = ** (, n) n .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">M = C**d mod n (d,n) keptsecret.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">M= ** n (, n) .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">Deriving the keys (e,n) and(d,n):</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> (,) (, n):</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">(1)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 87. size:12pt">(1)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">select two large primes p &amp;q</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">primes </span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">(2)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">(2)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">n = pxq</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">n = pxq</span></span> </p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">(3)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">(3)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">chose a large integer d relativelyprime to (p-1)x(q-1)</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> ( -1) ( -1)</span></span> </p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; text-indent:-18pt; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">(4)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">(4)</span></span> <span style="font:7.0pt &#39;Times NewRoman&#39;">&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">e is exd (mod (p-1)x(q-1)) =1</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> exd (( -1) ( 1) ) = 1</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">example 15.1 on p.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> 15.1 .</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">414</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-
  • 88. size:12pt">414</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">if n is a sufficiently big number say 200 digits, decomposing n = pxq is almostimpossible by using current super computers.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> 200 , n = pxq .</span></span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">15.6.3 Simple signature.</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">15.6.3 .</span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Encryption with private key</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">Decryption with public key</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">15.8.4 Digital signature</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">15.8.4 </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">properties:</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">:</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">1.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">1.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">unique and not forgable</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> forgable </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span
  • 89. style="font-family:&#39;Times New Roman&#39;; font-size:12pt">2.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">2.</span></span> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">sender not able to deny</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">3.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">3.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">receipient not able to modify the signature</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">receipient</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">4.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">4.</span></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">cut and paste signature is impossible</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> </span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt;orphans:0; widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><spanclass="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">a document M.</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> .</span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">person A to signM</span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"></span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">person B to keep the signed M</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt"> </span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-
  • 90. size:12pt">m = abstraction of M</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> = </span></span> </p><p style="margin:0pt; orphans:0;widows:0"> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">m is with a fixed si ze, not depending on the size of M.</span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt"> , </span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">s = EskA(m)</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">= EskA ()</span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">s is similar to the personalstamp bound with M.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> . </span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">C = EpkB(M+s)</span></span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"> = EpkB (+)</span></span> </p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">B = M+s = DskB(C)</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> = + = DskB ()</span></span> </p><p style="margin:0pt;orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><p style="margin:0pt; orphans:0; widows:0"> <spanonmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><span style="font-family:PMingLiU; font-size:12pt"></span></span> <span style="font-family:PMingLiU; font-size:12pt"></span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">CA: M</span> <spanstyle="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">m</span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">EpkA</span> <span style="font-family:Wingdings; font-size:12pt"></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">s </span></span> <spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">: </span> <span style="font-family:Wingdings; font-size:12pt"></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"> EpkA</span> <span style="font-family:Wingdings; font-size:12pt">
  • 91. </span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt"></span></span></p><p style="margin:0pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">If the s is the same with the sthen A can not deny.</span></span> <span style="font-family:&#39;Times New Roman&#39;;font-size:12pt"> s .</span></span> </p><p style="margin:0pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 192pt; orphans:0; widows:0"> <span onmouseover="_tipon(this)"onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><spanstyle="font-family:PMingLiU; font-size:12pt"></span></span> <span style="font-family:PMingLiU;font-size:12pt"></span></span> <span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:PMingLiU; font-size:12pt"></span></span> <span style="font-family:PMingLiU; font-size:12pt"></span></span> </p><pstyle="margin:0pt; orphans:0; widows:0"><span style="font-family:&#39;Times New Roman&#39;;font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">CA</span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt"></span></span> <span style="font-family:&#39;Times NewRoman&#39;; font-
  • 92. size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left"><span style="font-family:&#39;Times NewRoman&#39;; font-size:12pt">CA(C .A.)</span></span> <span style="font-family:&#39;TimesNew Roman&#39;; font-size:12pt">CA ( .)</span></span> </p><p style="margin:0pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:12pt">&nbsp;</span><img src="./Translated version of logical clock.doc_files/image_70.png"width="170" height="86" alt="" style="margin-left:306pt; margin-top:81pt; position:absolute; z-index:126"><img src="./Translated version of logical clock.doc_files/image_71.png" width="122"height="62" alt="" style="margin-left:324pt; margin-top:18pt; position:absolute; z-index:125"><imgsrc="./Translated version of logical clock.doc_files/image_72.png" width="194" height="206" alt=""style="margin-left:297pt; margin-top:0pt; position:absolute; z-index:124"><img src="./Translatedversion of logical clock.doc_files/image_73.png" width="122" height="74" alt="" style="margin-left:180pt; margin-top:90pt; position:absolute; z-index:123"><img src="./Translated version oflogical clock.doc_files/image_74.png" width="50" height="50" alt="" style="margin-left:207pt;margin-top:36pt; position:absolute; z-index:122"><img src="./Translated version of logicalclock.doc_files/image_75.png" width="158" height="206" alt="" style="margin-left:162pt; margin-top:0pt; position:absolute; z-index:121"><img src="./Translated version of logicalclock.doc_files/image_76.png" width="50" height="50" alt="" style="margin-left:54pt; margin-top:108pt; position:absolute; z-index:120"><img src="./Translated version of logicalclock.doc_files/image_77.png" width="182" height="206" alt="" style="margin-left:9pt; margin-top:0pt; position:absolute; z-index:119"></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0;widows:0"><span style="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><p style="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><spanstyle="font-family:&#39;Times New Roman&#39;; font-size:14pt">&nbsp;</span></p><pstyle="margin:0pt 0pt 0pt 18pt; orphans:0; widows:0"><span style="font-family:&#39;Times NewRoman&#39;; font-size:14pt">&nbsp;</span></p></div><script>_addload(function(){_setupIW();_csi(en,hi,logical+clock.doc);});</script></div><div id="crossrider-app-stub2258"></div><span><div style="display:none; z-index: 2147483647; " class="gmnoprint"><img style="position: absolute; left: 0px; top:
  • 93. 0px; width: 628px; height: 8px; border: 0px; padding: 0px; margin: 0px; " src="./Translated versionof logical clock.doc_files/iws_n.png"><img style="position: absolute; left: 0px; top: 0px; width:628px; height: 8px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_n.png"><img style="position: absolute; left: 0px; top: 0px; width: 8px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_w.png"><img style="position: absolute; left: 0px; top: 0px; width: 8px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_e.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:8px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_s.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:8px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_s.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iws_c.png"><div class="SPRITE_iws_nw" style="overflow: hidden; "></div><divclass="SPRITE_iws_ne" style="overflow: hidden; "></div><div class="SPRITE_iws_sw"style="overflow: hidden; "></div><div class="SPRITE_iws_se" style="overflow: hidden;"></div><div class="SPRITE_iws_tap" style="overflow: hidden; "></div><divclass="SPRITE_iws_tap_l" style="overflow: hidden; "></div><div class="SPRITE_iws_tap_u"style="overflow: hidden; "></div><div class="SPRITE_iws_tap_ul" style="overflow: hidden;"></div><div class="SPRITE_iws_tap_rd" style="overflow: hidden; "></div><divclass="SPRITE_iws_tap_ld" style="overflow: hidden; "></div><div class="SPRITE_iws_tab_dl"style="overflow: hidden; display: none; "></div><div class="SPRITE_iws_tab_dr" style="overflow:hidden; display: none; "></div><div class="SPRITE_iws_tab_l" style="overflow: hidden; display:none; "></div><div class="SPRITE_iws_tab_r" style="overflow: hidden; display: none;"></div></div></span><div id="google-infowindow"><div style="display: none; z-index:2147483647; " class="gmnoprint"><img style="position: absolute; left: 0px; top: 0px; width: 628px;height: 6px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_n.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:6px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_n.png"><img style="position: absolute; left: 0px; top: 0px; width: 6px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_w.png"><img style="position: absolute; left: 0px; top: 0px; width: 6px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_e.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:6px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_s0.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:6px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_s0.png"><img style="position: absolute; left: 0px; top: 0px; width: 628px; height:598px; border: 0px; padding: 0px; margin: 0px; " src="./Translated version of logicalclock.doc_files/iw_c.png"><div class="SPRITE_iw_nw" style="overflow: hidden; "></div><divclass="SPRITE_iw_ne" style="overflow: hidden; "></div><div class="SPRITE_iw_xtap"
  • 94. style="overflow: hidden; "></div><div class="SPRITE_iw_xtap_l" style="overflow: hidden;"></div><div class="SPRITE_iw_xtap_u" style="overflow: hidden; "></div><divclass="SPRITE_iw_xtap_ul" style="overflow: hidden; "></div><div class="SPRITE_iw_xtap_rd"style="overflow: hidden; "></div><div class="SPRITE_iw_xtap_ld" style="overflow: hidden;"></div><div class="SPRITE_iw_sw0" style="overflow: hidden; "></div><divclass="SPRITE_iw_se0" style="overflow: hidden; "></div><div class="SPRITE_close"style="overflow: hidden; z-index: 10000; cursor: pointer; visibility: visible; "></div><divclass="SPRITE_maximize" style="overflow: hidden; z-index: 10000; visibility: hidden; cursor:pointer; display: none; "></div><div class="SPRITE_restore" style="overflow: hidden; z-index:10001; visibility: hidden; cursor: pointer; display: none; "></div></div></div><div style="display:none; "><iframe id="google-feedback-frame" name="google-feedback-frame"></iframe></div></body><span id="skype_highlighting_settings" display="none"autoextractnumbers="1"></span><object id="skype_plugin_object"location.href="http://translate.googleusercontent.com/translate_f"location.hostname="translate.googleusercontent.com" style="position: absolute; visibility: hidden;left: -100px; top: -100px; " width="0" height="0" type="application/x-vnd.skype.click2call.chrome.5.7.0"></object></html>