• Save
Tajmahal
Upcoming SlideShare
Loading in...5
×
 

Tajmahal

on

  • 330 views

 

Statistics

Views

Total Views
330
Views on SlideShare
330
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tajmahal Tajmahal Document Transcript

  • <!-- 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)
  • !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
  • &&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-
  • 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
  • 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-
  • 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
  • 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;;
  • 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">
  • : .</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
  • 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
  • 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;;
  • 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)"
  • 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)"
  • 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
  • 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
  • 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)"
  • 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"
  • 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-
  • 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:-
  • 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-
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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;
  • 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-
  • 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
  • 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
  • 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)"
  • 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-
  • 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
  • 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
  • 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;;
  • 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-
  • 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
  • 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;
  • 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
  • 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;
  • 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
  • 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">
  • (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
  • 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
  • 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
  • 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"
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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;
  • 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-
  • 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-
  • 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>
  • ,</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
  • 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
  • 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;
  • 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
  • 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"
  • 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
  • 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;
  • 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-
  • 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"
  • 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-
  • 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
  • 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-
  • 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
  • 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-
  • 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-
  • 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-
  • 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;
  • 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">
  • 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
  • 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-
  • 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-
  • 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
  • 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
  • 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
  • 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
  • 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"
  • 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"
  • 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>
  • <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">
  • <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-
  • 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-
  • 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-
  • 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
  • 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-
  • 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">
  • </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-
  • 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:
  • 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"
  • 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>