Upload
wray
View
54
Download
0
Embed Size (px)
DESCRIPTION
Fault Tolerant Broadcast. Advanced Operating Systems Sharif University of Technology Lecturer: Dr. R.Jalili. مقدمه. - PowerPoint PPT Presentation
Citation preview
Advanced Operating SystemsSharif University of TechnologyLecturer: Dr. R.Jalili
1
طراح$ي و وري$ف کاربردهاي توزي$ع شده متحم$ل خط$ا بههاي$ي که براي عنوان ي$ک کار پيچيده تلق$ي م$ي شود. پديده
شده مطرح کار اي$$ن س$$ازي اجماع س$$اده شامل ان$$د (Consensus) و چند نوعReliable Broadcast.است اجماع(Consensus):
پردازه رس$يدن براساس امکان ک$ه مشترک تص$ميم ي$ک ب$ه ه$ا شود. هاي اوليه و عليرغم خطا اخذ مي ورودي
کاربرده$ا: انتخاب ره$بر و ي$ا تواف$ق روي مقدار ي$ک سنسور تکرار شده.
پخش همگاني(Reliable Broadcast): ت$ا همه روي پخ$ش همگان$ي در خيل$ي از کاربردهاي الزم اس$ت
ترتيب پيغام روي ي$ا باشند. داشت$ه تواف$ق گرفت$ه تحوي$ل هاي ها توافق داشته باشند. پيغام
2
ها، کاربردهاي زير مطرح هستند: برمبناي اين پديدهSIFT، Isis، Psync، Amoeba، Delta-4، Transis،
HAS، FAA و Atomic Commitmentگذاري کال تحقيقات زيادي انجام شده اس$ت ولي فرضيات و عالمت
هاست. سازي آن متفاوت مانع از هم:براي بيان دقيق و ساده مطالب خ$ط دقي$ق و مشخص$ي بينSpecification و Algorithm کشيده
شود. مي مفهوم از زياد درنتيجه Reductionاس$$تفاده مس$$ائل، بي$$ن
شان. بندي مسائل براساس پيچيدگي کالسه
ب$ا ي$ک بيان خيل$ي سطح Algorithm وSpecificationامکان ارائ$ه باال
3
:مدل ارتباطيMessage-Passing
مرسوم از مدل دو و Message-Passingبي$$ن Shared Memory
:مواردها و ارتباطات همگامي پردازهها نوع خطاي پردازهنوع خطاي ارتباطيبندي شبکه همها مشخص يا تصادفي بود$ن پردازه
4
ها و هم سيستم ارتباطي قابل اعمال هم در مورد پردازه گوئيم )در اين بخش( ک$ه شرايط زير را برآورده همگامهمگامسيستمي را
کند.ه$ا وجود داشت$ه باشد براي تأخي$ر پيغاممحدوده باال )مشخ$ص( مث$ل 1.
)ارسال، انتقال، دريافت(. را با 0 دارد ک$ه حداکث$ر اختالف Cp س$اعت محل$ي Pه$ر پردازه 2.
:tt و همه Pساعت واقعي دارد. براي همه پردازه هاي
ي$ک س$قف و ي$ک ک$ف براي زمان اجراي ي$ک مرحل$ه از کار توس$ط يک 3.پردازه وجود دارد.
توان بنابراين ميTime-Outرا براي هر پيغام اندازه گرفت . روشي براي تشخيص خطا
)1()(
)()()1( 1
tttCtC pp
5
مي س$اعت همچني$ن همگام هاي توان همگام تقريب ا پيادهتقريب ا کرد. را سازي آن يعن$ي س$اعت بر محدودبودن فاص$له ب$ا ساع$ت هايي ک$ه عالوه ه$ا
کنند: ، شرط زير را برآورده مي(Drift)واقعي
س$اعت مي چني$ن ه$م خط$ا حضور در حت$ي پياده هايي، سازي توانن$د شوند.
هاي تقريبا همگام کاربرد ساعت(Approximately Sync). :بي فرآيندهاي مديريت کنترل سازگاري درن$$$گ، ،Cacheفاي$$$ل،
Authentication... .
س$ازي کند هاي واقع$ي را شبيه تواند س$اعت در خيلي از مس$ائل نيز ميکند. و لذا طرح الگوريتم توزيع شده را آسان مي0=يعني
)()(::,,: tCtCqpt qp
6
ناهمگام ناهمگامس يستمي ميس يستمي خوانده اگر شود ، زمان Clock Driftاي براي تاخي$ر پيغامي، محدوده
باشد. نداشته وجود کار ي$ک از مرحل$ه ي$ک اجراي وجود ندارد.Timingهيچ فرضي در مورد
:همگام$ي و ناهمگام$ي دو ح$د افراطي براي توج ه:توج ه از س$يستم بخشي روي مثال هس$تند. واقع$ي هاي ، ...( محدوديت وجود دارد و Driftه$ا )تاخي$ر، ويژگي
روي بخشي نه.
7
هاي خطا براي پردازه شامل: مدلCrashSend OmissionReceive OmissionGeneral OmissionByzantine )نامعلوم( نامعلوم همراه باMessage Authentication
براي مکانيزمي ول$$ي پردازه اختياري Authenticationرفتار خطا پيغام پردازه يعن$ي دارد. وجود نمي ه$ا فالن دار از که توان$د
اگ$ر چني$ن پيغامي حت يحت يپردازه درس$ت پيغام درياف$ت کرده اس$ت ارسال نشده باشد.
هاي همگام و هم اي$ن دس$ته از خط$ا ه$م در مورد س$يستمخطاهاي س$يستم معهذا، هستند. مطرح ناهمگام هاي
هاي همگام مورد دارند. زماني تنها در مورد سيستم
8
زماني پردازه خطاهاي درمعرض را (Timing)اي هاي زير خطا کند: دانيم که به يکي از روش مي
خطاهايGeneral Omission.)را تاييد کند )مرتکب شود Driftاش از محدوده مشخص شده تجاوز کند. ساعت محلي محدوده زمان$ي الزم براي اجراي ي$ک مرحل$ه از کاري را نقض
کند.:از لحاظ جدي بودن
General Omission < Timing < Byzantineک$ه جدي نوع خطاهاي$ي از خطاي ب$ه نباشند Timingت$ر
Benignه$ا رفتار$ اختياري ندارند و )مالي$م( گوين$د:: پرداز$هفرستند. اي در الگوريتم را نمي بيني شده پيش يا پيغام غير
9
نوع خطاهاي مؤثر در خطوط ارتباطي
Crashايستد. : کانال از ارسال پيغام ميOmissionهاي ارس$ال شده از طري$ق کانال از بين : پيغام
روند. مي اختياري(Byzantine)پيغام تولي$د حت$ي هم : غل$ط هاي
ممکن است.Timingپيغام آن ه$ا : مشخص$ات از کندت$ر ي$ا تندت$ر ها
شود. ارسال مي
10
پردازه ک$ه کني$م بوسيله فرض محاوره Bcastه$ا از مي بخشي تنه$ا خط$ا، رخداد درص$ورت کنند.
مي پردازه درياف$ت را پيغ$ام نياز ه$ا بنابراين کنند. داشته باشيم.Reliable Bcastداريم که يک
ضعيف( مطمئ$ن همگان$ي پخ$ش ترين غيررس$مي:: تضمين Bcastگون$ه را ويژگ$ي س$ه نظ$ر( مورد
کند: ميپردازه پيغام هم$$ه مجموعه روي درس$$ت هاي هاي
دريافت کرده توافق داشته باشند.هاي هم$ه پيغامBcastهاي درست شده بوس$يله پرد$ازه
دريافت شده باشند..هيچ پيغام مغلوطي دريافت نشده باشد
11
:توج$هReliable Bcastها ندارد. محدوديت$ي روي ترتي$ب پيغامشود. مطرح ميBcastتري از يک نوع قوي
:غيررسمي FIFO Bcast ي$ک Reliable Bcastه$ا به اس$ت ک$ه رس$يدن پيغ$ام
تضمين پردازه فرس$تنده توس$ط شده پخ$ش ترتي$ب ب$ه را ه$ا کند. مي
Causal Bcastقوي نس$خه از که FIFO Bcastتري اس$ت دهد. هاي پخش شده را براساس ترتيب پخش، تحويل مي پيغام
ميCausal Bcastول$ي اجازه پردازه ک$ه پيغام ده$د عالً ها، هاي نامربوط را به ترتيب مختلفي دريافت کنند.
Atomic Bcast، Bcastپيغام ترتيب ي$ي اس$ت ک$ه هم$ه ب$ا را ه$ا دهد. يکسان تحويل مي
FIFO Atomic Bcast ترکيبي از FIFO و Atomic.Atomic Bcast Causal ترکيبي از Causal و Atomic.
خطاهاي معطوف را خود تنها بح$ث اي$ن benignدر کنيم. مي
12
اوليه عم$ل دو کال داريم. الزم را باال در شده مطرح شرط س$ه (Primitive) براي اي$ن نوع Bcastالزم داريم : broad cast)m( و
deliver)m( که mهاي ممکن پيغامي است از مجموعه پيغامM.
پيغامmشناس$$ه فيلدهاي داراي فرستنده و [)sender)m]ي باشد. مي[)seq#)m]شماره ترتيب
R.Bcast يک Bcast:است که شرايط زير را برآورده کند اعتبارValidity پيغام درس$ت، پردازه ي$ک اگ$ر :m را Bcast کند
را دريافت خواهند کرد.mهاي$ درست نهايتاً ي پردازه سپس همه
تواف$قAgreement اگر ي$ک پردازه درس$ت پيغام :m را تحويل$ بگيرد را تحويل خواهند گرفت.mهاي درست نهايتاً سپس همه پردازه
)جامعي$ت( پيغام Integrityدرس$تي ه$ر براي :mپردازه ه$ر ي ، mاي کند به شرط$ي که پردازه را حداکثر يکبار دريافت ميmدرست
کرده باشد.Bcastرا
13
سؤال: اگرPدر حين پخش$ با خطا مواجه شد؟ کنند( اند )مي يا همه دريافت کردهکند( يا هيچکس دريافت نکرده )نمي
اگ$رP، broadcast)m( بالفاصله و فراخوان$د را Crashهاي درس$ت از قص$د کن$د، پردازهP بر پخش
mشون$د و ي$ا اگ$ر بخش$ي از اطالعات )به مطل$ع نميآن هم$ه باش$د، شده ارس$ال کاف$ي( دريافت ح$د را
خواهند کرد.
14
آ$ن ممکن ب$ه توج$ه بدون دارد ک$ه پيغام$ي محتواي$ي ه$ر تواند اس$ت س$وء تفس$ير پي$ش آيد. چني$ن پيغام$ي وقت$ي مي
پردازه ي$ک دانسته Bcastتوس$ط محتواي$ش ک$ه شود محتواي کاربردهاي$ي، در مثال پيغامmشود. هاي شامل
Bcast شده توسط فرستنده m .است پيغام لغ$و شام$ل پيغام ي$ک محتواي بلي$ط، رزرو در هايي مثال
داده انجام را آ$ن رزرو ک$ه ي$ک سايت اس$ت در نباي$د لغ$و اند. تحوي$ل شود ک$ه آ$ن س$ايت محتواي پيغام را قبال دريافت نکرده
است.
ب$ه نياز کاربرد که R.Bcast، ي$ک FIFO Bcastبنابراي$ن شرط زير را برآورده کند:
FIFO Orderپردازه اگ$ر از mاي : قب$ل را m ،کند پخ$ش پردازه هي$چ نباي$د $س$پس درس$تي کن$د، مگر mي درياف$ت را
را تحويل گرفته باشد.mکه قبال آن15
ترتي$بFIFO براي موقع$ي مناس$ب اس$ت که محتواي mتنه$ا پيغام ، mهاي ارس$ال شده فرستنده شام$ل
از ول$ي mقب$ل باشد. m به وابس$ته اس$ت ممک$ن هم m قب$ل از ارس$ال mهاي تحوي$ل شده ب$ه پيغامباشد.
کاربرد ي$ک در با Net Newsمثال: کاربران اگ$ر ،هايشان را بفرس$تند، س$ناريوي زير پيغامFIFOترتي$ب
رخ خواهد داد:A ،ي$ک پيغام م$ي فرس$تد B روي سايت ديگري پيغام A را
را قبل از B پيغام Cکن$د، گرفت$ه و جواب آنرا ارس$ال ميکند. کند. پاسخ را بد تفسير مي دريافت ميAپيغام
16
اوليه را deliver و broadcastاگ$ر اجراي اعمال f قبل از eان$د، واقع$ه وقايع$ي تلق$ي کني$م ک$ه رخ داده
اگگر:efرخ داده است به ترتيب اجرا کرده باشد، ياf و eيک پردازه 1..2e پخش يک پيغام مثل m و fتحويل آن باشد، يا hf و ehيي وجود دارد که hواقعة 3.
17
اين رابطه غيرحلقوي است چون در دنياي واقع، تحويل پيغام پس از ارسال آن رخ
دهد. مي
Causal Bcast ي$ک Reliable Bcast اس$ت که نياز زير را ارضاء کند:
ترتي ب علّ ي: اگ ر پخ ش ترتي ب علّ ي: اگ ر پخ شmm عاّّل قبل عاّّل قبل پخ ش پخ ش از هيچ mmاز س پس باش د هيچ س پس باش د
درس تي درس تي پردازه ي دريافت mmپردازه ي را دريافت را آن ک ه مگ ر آن ک ه نمي کن د مگ ر تحويل mmنمي کن د را تحويل را
گرفته باشد.گرفته باشد.
18
نامربوط عال² پيغام هاي ترتيب ب$ه کاري ²$ي عل پخ$ش$ ندارد. پردازه هاي درس$ت ممک$ن است پيغام هاي عال²
نامربوط را با ترتيب نايکساني بگيرند. مثال ي$ک پايگاه داده تکرار شده را درنظ$ر بگيري$د ک$ه دو نسخه از
داراي x را در س$ايت هاي متفاوتي نگه مي دارند. در ابتدا xحس$اب تومان است.,000100
تومان واري$ز مي ک$ند. پيغام 20,000ي$ک کاربر m «20,000 به x اضافه شود» پخش مي شود.
پيغام ديگري س$ايت از زمان، همي$ن به m «10%در بهره x عال² ب$ه ه$م مربوط نيستند m و mافزوده شود» پخ$ش مي شود.
اي$ن دو ب$ه ه$ر ترتي$بي مي توانن$د ب$ه هم$ه سايت ها C.Bcastو لذا ب$ا برسند.
xناسازگاري مقادير نسخ
19
A.Bcast پردازه هاي درست ک$ه هم$ه الزم مي دان$د بگيرند. تحويل يکس$اني ترتي$ب ب$ا را پيغام ه$ا هم$ه يعن$ي هم$ه پردازه ه$ا دي$د يکس$اني از س$يستم داشته
باشند.A.Bcast ي$ک R.Bcast را زير ترتي$ب ک$ه اس$ت
برآورده کند: درست پردازه هاي اگ ر کل ي: پردازه هاي درست ترتي ب اگ ر کل ي: و ppترتي ب و qq
و و mmپيغامهاي پيغامهاي mm ،باشند تحوي ل گرفت ه باشند، را تحوي ل گرفت ه را از pp، ، mmس پسس پس قب ل را از قب ل را mm مي گيرد مي گيرد تحويل تحويل
تحويل بگيرد.تحويل بگيرد. mm را قبل از را قبل از qq، ، mmاگر اگر
20
A.Bcast نيازي ب$ه تحوي$ل FIFO پيغام ها ندارد. براي ب$ا خطاي مقطعي mمثال ي$ک پردازه درحي$ن پخ$ش$
را پخ$ش$ کرده است mمواج$ه شده اس$ت و س$پس را دريافت کرده اند. mو پردازه هاي درست تنها
بنابراي ن بنابراي نA.BcastA.Bcast از قويتر از قويتر FIFO BcastFIFO Bcast نيست.نيست.
:لذاFIFO A.Bcast ي$ک R.Bcast شرط دو که را متقاعد مي کند.FIFOترتيب کلي و
21
FIFO A.Bcast ترتيب ب$ه پيغام ه$ا ک$ه نمي کن$د تضمي$ن ²$ي تحوي$ل مي شوند. همان مثال خ$بر شبک$ه را درنظر عل
براي ارس$ال پيغام ها FIFO A.Bcastبگيريد و فرض کنيد بکار رود. سناريوي زير را درنظر بگيريد:
ب$ا خطاي B خ$بري را پخ$ش مي کن$د؛ کاربر با خطاي Aکاربر )ک$ه تنه$ا کس$ي اس$ت ک$ه پيغام را تحوي$ل گرفت$ه اس$ت( پاسخي
مي کن$د )قب$ل از دريافت Crashرا پخ$ش مي کن$د و بالفاص$له پيغام پخش شده خودش(.
کاربر درس$تC پاس$خ را تحوي$ل مي گيرد، هرچن$د پيغام اصلي را دريافت نکرده است.
کني$$م م$$ي يک Causal Atomic Bcastتعري$$ف Reliable Bcast را عل²ي و ²$ي کل ترتي$ب نياز ک$ه اس$ت قوي تر از هردوي قوي تر از هردوي BcastBcastاي ن نوع اي ن نوع برآورده مي کند.
FIFO A.BcastFIFO A.Bcast و و C.BcastC.Bcast.مي باشد. مي باشد
22
خيل$ي از کاربرده$ا نياز دارن$د ک$ه اگ$ر پيغام$ي درياف$ت ش$د حتمادر ي$ک محدوده زمان$ي مشخص$ي از لحظ$ه پخ$ش دريافت شود.
گويند.-timelinessاين ويژگي را اندازه زمان محليزمان محليو زمان واقع$يزمان واقع$يزمان ب$ه يک$ي از دو شک$ل
گيري مي شود.-timeliness با زمان واقعي(: اگر پيغامي در لحظه(t پخش
دريافت نکند. t+tشد، هيچ پردازه درستي آن را پس از محلي زمان بي$ن زمان$ي تفاوت باي$د محل$ي، زمان مورد در
پخش کننده و تحويل گيرنده محدود باشد. پيغام ک$ه ه$ر ي$ک زمان مهر mفرض مي کني$م )ts)m شام$ل
است که زمان پخش کننده را مشخص مي کند. -timeliness :)محل$ي زمان هيچ )ب$ا ک$ه دارد وجود ي$ي
)برحسب ts)m(+ را پ$س از m، پيغام (p)پردازه درس$تي ( دريافت نمي کند.pساعت
23
ه$رBcast ي$ي ک$ه شرايط-timeliness را برآورده ناميده مي شود. Timed Bcastکند
بنابراينTimed Reliable Bcast. ...داريم و را تأخي$ر (Latency) اي$ن روش پخ$ش$ گوييم و در
ه$ر ص$ورت مشخ$ص مي کني$م ک$ه زمان واقع$ي است يا منطقي )محلي(.
24
،توافق شام$ل همگان$ي پخ$ش$ شده مطرح خواص و ترتي$ب محدوديتي -timelinessجامعي$ت، هي$چ
روي پيغام هاي تحويل شده پردازه هاي خطادار وجود ندارد.
تواف$ق تواف$ق مثال ويژگ$يAgreementAgreement اجازه مي ده$د که ي$ک پردازه خطادار پيغام$ي را درياف$ت کن$د ک$ه بوسيله پردازه هاي درس$ت درياف$ت نشده باشد. اين رفتار در
خيلي از کاربردها پذيرفته نيست.
شرايط و ويژگي هاي قوي تري مي توان داشت:
25
توافق يکنواخت(Uniform Agreement): را دريافت mاگر پردازه اي )اعم از س$الم يا خطادار( پيغام
نهايتا ه$م درس$ت پردازه هاي هم$ه س$پس را mکرد دريافت خواهند کرد.
جامعيت يکنواخت(Uniform Integrity) :، ه$ر پردازه )اع$م از درس$ت يا خطادار( mبراي ه$ر پيغام
بار ي$ک که mحداکث$ر )ب$ه شرط$ي مي کن$د درياف$ت را پيغام پخش شده باشد(.
26
ثاب$توجود دارد ک$ه هيچ پردازه ي$ي p پيغام m را از زمان ts)m(+پ$$س )برحس$$ب p دريافت ) ممکن است سالم يا خطادار باشد. Pنمي کند.
Uniform FIFO orderUniform Causal orderUniform Total order
براي ه$ر کدام مي توان فرمUniform آن را تعريف کرد.
27
اگ$ر پردازه اي پيغام$ي را درياف$ت نکن$د )در حال$ي کهپيدا ناسازگاري وضعي$ت کرده ان$د( درياف$ت بقي$ه مي کن$د و براس$اس اي$ن وضعي$ت ناس$ازگار محاسبات
خود را ادامه داده و پيغام پخش$ مي کند
خطا نوع ک$ه )هرچن$د مي شود. آلوده س$يستم ک$ل Omission).بوده است
.الزم اس$ت ب$ه نحوي از اي$ن آلودگي جلوگيري شودمثال اطالعات$ي در ه$ر پيغام باش$د ک$ه ارتباط آن را با پيغام قبل$ي معلوم کن$د و لذا عدم درياف$ت يک پيغام
براحتي قابل کنترل باشد.
28
:جمع بندي بينابيني:جمع بندي بينابيني
اعتبار: اگ$ر پردازه درستيbroadcast)m( را انجام داد، همه پردازه هاي درست آن را دريافت مي کنند.
پردازه اي اگ$ر همه mتواف$ق: کرد، درياف$ت را
پردازه هاي درست ديگر هم دريافت مي کنند.
جامعي$ت: ه$ر پردازه درس$ت تنه$ا يکبارm را دريافت مي کند اگر پردازه اي آن را پخش$ کرده باشد.
29
Reliable Bcast = Validity + Agreement + Integrity
FIFO Bcast = R.Bcast + FIFO OrderCausal Bcast = R.Bcast + Causal OrderAtomic Bcast = R.Bcast + Total OrderFIFO A.Bcast = R.Bcast + FIFO Order +Total
OrderCausal Bcast = R.Bcast + Causal Order +
Total Order
30
R.Bcast
F.Bcast
C.Bcast
A.Bcast
F.A.Bcast
C.A.Bcast
Total Order
Total Order
Total Order
FIFO Order FIFO Order
Causal Order
Causal Order
الگوريتم ه$ا ب$ه روش$ي س$لسله مراتبي و اليه اي بيانابتدا يعن$ي بقيه R.Bcastمي شون$د بي$ن س$پس و
براساس آن. هم$ه الگوريتم هاي$ي که بيان مي شود فرضUniform
Integrity.را دارند :قرارداد عالمتگذاري
R براي ReliableF براي FIFOC براي CausalA براي AtomicFA براي FIFO AtomicCA برايCausal Atomic
31
broadcast )T,m(
نوع پخشMessage
deliver)T,m(
اي پردازه فراخواند )broadcast)T,mاگ$$ر را . کرده استT-Bcast را mگوئيم
براي مثالbroadcast)R,m(را -Timeliness Reliable Bcast پيغامm
خوانيم.
32
به راحت$ي در س$يستم هاي ناهمگام ب$ا خطاي ماليم پردازهو کانال ارتباطي )بدون افزار( قابل پياده سازي است.
:ايده مبنايي برايR.Bcast ي$ک پيغام، ي$ک پردازه پيغام را ب$ه خود و همه
همسايگانش مي فرستد. به آن را درياف$ت کرد را پيغام$ي پردازه اي ک$ه اول$ي بار براي
مي کند.R.Deliverهمه همسايگانش رله مي کند و سپس آنرا اوليه اعمال ک$ه اس$ت اي$ن و )send )mفرض مان
receive )m(:شرايط زير را برآورده مي کنند اعتبار: اگ$رp، m را ب$ه q بفرس$تد و p و q و کانال ارتباطي
پيغام را دريافت خواهد کرد. qدرست باشند، سپس جامعي$ت يکنواخ$ت: براي ه$رm، q حداکثر يک بار m را از p
را فرستاده باشد.p، mدريافت خواهد کرد اگر
33
الگوريتم: در هر پردازهp:داريم To execute broadcast (R,m)To execute broadcast (R,m)::
tag mm with Sender)m( and Seq#)m( Send)m( to all neighbors including p
deliver (R,m) occurs as followsdeliver (R,m) occurs as follows:: upon Receive)m( do
if p has not previously executed deliver)R,m( then
if Sender)m(p then Send)m( ( to all neighbors deliver)R,m(
خطاي با تنه$ا پردازه ه$ا ک$ه ناهمگام س$يستم ي$ک در فوق الگوريت$م Receive Omission مواج$ه باشن$د و خطاي ارتباط$ي نداشت$ه باشيم
است.Uniform R.BcastUniform R.Bcastيک الگوريتم
34
را زير شراي$ط زيري$ن شبک$ه ک$ه کني$م فرض اگ$ر برآورده مي کند:
کنند.Fail تا پردازه مي توانند fحداکثر 1.
تا dه$ر دو پردازه درس$ت ب$ا مس$يري ب$ه طول حداکث$ر 2.پردازه و کانال درست به هم متصل هستند.
روي تاخير پيغامي وجود دارد.يک محدود$ه ي باالي 3.
گرفته 4. نظ$ر در ص$فر محل$ي مرحل$ه ي$ک اجراي زمان مي شود.
زماني، 1. و فرض عدم وجود خطاي اي$ن فرضيات ب$ا را برآورده کرد:Real-Time-Timelinessمي توان
خطاي 1. وجود با و General Omissionقض$ي$$ه: )با Timed RBcastفرض هاي باال، الگوريت$م قبل$ي، ي$ک
ساعت واقعي( است با:
35
)( df
ارتباطي کانال و پردازه ه$ا ک$ه کني$د فرض حال درمعرض خطاي زماني باشند.
هي$چ الگوريتم$ي نم$ي تواندReal–time-Timeliness را تغييرات$ي ب$ا مي توان ول$ي کند. -Local-Timeتض$مي$ن
Timeliness.را برآورده ساخت زمان$$ي محدوده $$ي بين اوال: پيغام هاي روي تنه$$ا
پردازه هاي درس$ت و روي کانال هاي درس$ت قابل اعمال است.
ام:۵فرضمحدوده ي 5. د$ر تقريب$ا د$رس$ت پردازه هاي س$اعت هاي
به واقع$ي محدوده ب$ا س$اعت فاص$له شان و همگامن$د است.
36
م$ي خواهد پردازه اي وقت$ي الگوريت$م: تغيي$ر را mحال و کرده ممهور نيز ارس$ال زمان ب$ه آن را کن$د پخ$ش براي ني$ز شام$ل يک شمارنده پيغام ارس$ال مي کند. ه$ر
p، mهاي پيموده شده اس$ت. وقتي Linkشمارش تعداد ک$ه کرد درياف$ت ت$ا kرا Link کنترل است، پيموده را
دريافت زمان و ارس$ال زمان تفاض$ل آي$ا ک$ه مي کن$د هست يا نه؟ k((1+)+)بزرگتر از
اگر بودp .پيغام را دور مي ريزد در غي$ر اينص$ورت آن را ب$ه همس$ايگان رل$ه کرده و آن را تحويل
مي دهد. فرضيات و زمان$ي خطاي وجود ب$ا تا 1قضي$ه: و 5
ي$ک پخ$ش همگان$ي الگوريت$م الگوريت$م، -Localتغييرات Timed Reliable:است با
37
)1()1()( fdf
برايFIFO Bcast ي$ک پيغام m پردازه اي نظير ،q ،اگ$$ر R.Bcastآن را مي کند. m، i پيغام امين
F.Bcast شده بوسيله q:باشد Sender)m(=q و Sep#)m(=i
ه$ر پردازه $يp ب$ه ازاء ه$ر فرس$تنده ،q يک شمارنده next]q[ بعدي پيغام شماره معرف که نگهميدارد
شود.q، F.Bcastاست که بايد از پردازه ي را p، mوقت$ي R.deliver در آن را کرد،
msgbag مي تواند ک$$ه را آن ه$$ا و مي گذارد F.deliver به ترتيب( .مي کند FIFO)
38
InitializationInitialization:: msgbag := next]q[ := 1 for all q
To execute broadcast(F,m)To execute broadcast(F,m) broadcast)R,m(
deliver(F,m) occurs as followsdeliver(F,m) occurs as follows::upon deliver)R,m( do
q := Sender)m( msgbag := msgbag {m} while ) m msgbag : Sender)m(=q AND
Sep#)m(=next]q[ do deliver)F, m( next]q[ := next]q[ + 1 msgbag := masbag – {m}
39
الگوريت$م ي$ک ب$ا داشت$ن الگوريتم R.Bcastقضي$ه: ، را ارضاء مي کند.FIFOباال ترتيب يکنواخت
اگ$ر الگوريت$م مبنايي ويژگي هايUniform Agreement الگوريت$م مشتق شده -timelinessي$ا را ارضاء کنن$د،
نيز چنين خواهد بود.
40
InitializationInitialization:: PrevDlvrs :=
broadcast(C,m)broadcast(C,m) broadcast)F,<PrevDlvrs || m>( PrevDlvrs :=
deliver(C,m)deliver(C,m)::upon deliver)F,< m1,m2,…,ml >( for some l do
for i:=1…l do if P has not previously executed deliver(C,mdeliver(C,mii)) then
deliver(C,mdeliver(C,mii)) PrevDlvrs := PrevDlvrs || mi
41
prevDlvrs ک$ه اس$ت پيغام هاي$ي آخرين p مجموع$ه از Bcast، C.deliver .کرده است
آن ها را پخش مي کند.broadcastبنابراين در
پردازه را qوقت$ي پيغامي دنبال$ه چني$ن ،C.deliver دريافت قبال ک$$ه را دنبال$$ه از پيغام هاي$$ي مي کن$$د،
(C.delive ) نکرده استC.deliver.مي کند
تضمين نيازمن$د الگوريت$م اي$ن FIFO Orderدرس$تي Uniform بوسيله FIFO Bcast.زيرين است
شراي$ط خاص$ي بر الگوريت$م حکمفرم$ا نيست و لذا برايتوپولوژي هاي مختلف ناهمگام(، ي$ا )همگام ه$ر س$يستم
شبکه، و هر تعداد خطاي ماليم کار مي کند.
42
43
۶قضيه : ب$ا داشت$ن ي$ک الگوريت$مFIFO Bcast ک$ه ترتي$ب يکنواخت
FIFO يکنواخت ترتي$ب باال الگوريت$م س$ازد، برآورد$ه را الگوريتم اگ$ر عالوه ب$ه مي کند. برآورد$ه را ²$ي FIFOعل
Bcast اين کن$د، برآورد$ه را ي$ا يکنواخ$ت تواف$ق شرط الگوريتم نيز برآورده مي کند.
الگوريتم هي$$چ قبل$$ي، الگوريتم هاي Atomicبرخالف Bcast مشخص$ي (Deterministic) سيستم هاي براي
و تنها ک$ه کني$م فرض اگ$ر حت$ي ندارد، وجود ناهمگام خطاي با آن ه$م و خطادار پردازه ي$ک Crashحداکث$ر
داريم.
زي$ر پياده A.Bcastالگوريت$م ي$ک سيستم همگام در را سازي مي کند:
To execute broadcast(ATo execute broadcast(A,m),m):: Broadcast)R,m(
deliver(Adeliver(A,m) occurs as follows,m) occurs as follows:: upon deliver)R,m( do
schedule deliver)A,m( at time ts(m)+ts(m)+
44
از پيغام$ي ک$ه ه$ر اس$ت پردازه مجاز پيغام هاي Mه$ر )مجموعه ممک$ن( را پخ$ش همگان$ي کن$د و هي$چ دان$ش قبلي در مورد پيغام هاي
با Bcast پ$س از فراخوان$ي pدر راه و ي$ا بالتکلي$ف ندارد. اگ$ر مثال خط$ا مواج$ه شود پردازه هاي درس$ت نمي توانن$د انتظار داشت$ه باشند
براي پخش هم pکه همه پيغام ها را دريافت مي کنند. حتي از قصد نمي توانند مطلع شوند.
برع$ک$س در مواردي قرار اس$ت ي$ک پردازه پيغام$ي را پخ$ش کند وديگ$ر پردازه ه$ا از اي$ن قص$د مطل$ع هس$تند. مثال در ي$ک س$يستم توزيع شده بي درن$گ، ي$ک س$نسور درج$ه حرارت قرار اس$ت هر از چندگاه پخش ها اي$ن از هرکدام کند. اعالم را حرارت درج$ه )معلوم(
مطرح شود.Terminating R.Bcastمي تواند به عنوان
45
را Bcastنوع پيغام يک هميش$ه پردازه هاي درس$ت دارد هم$ه نياز ک$ه ي$ي Bcast، Crash باش$د و ي$ا قبل از Faultyدرياف$ت کنن$د، حت$ي اگ$ر فرس$تنده
کند.
پيغام تحوي$ل شده ممک$ن اس$ت پيغام خاصSF باشد بودن فرس$تنده است. Faulty و معرف SFMک$ه
بنابراي$ن مجموع$ه پيغام هاي$ي ک$ه ممک$ن اس$ت دريافت M{FS}شود )تحويل شود(:
فرق اي$ن نوعBcast ب$ا R.Bcast در اي$ن اس$ت که پردازه هاي درس$ت هميش$ه پيغام را دريافت مي کنند. همچني$ن نياز جامعيت$ي ه$م کم$ي رقي$ق مي شود ک$ه به
را SFپردازه ه$ا امکان مي ده$د ک$ه پيغام پخش نشده هم تحويل بگيرند.
46
Terminating Reliable Bcast را زير شراي$ط برآورده مي کند:
.1Termination پيغامي نهايت$$ا د$رس$$ت پردازه ه$$ر :دريافت مي کند.
اعتبار: اگ$ر فرس$تنده درس$ت باش$د و پيغام$ي پخ$ش کند 2.سپس همه پرد$ازه هاي د$رست آن را دريافت مي کنند.
توافق 3.
تحويل 4. پيغام ي$ک پرد$ازه درس$ت حداکث$ر جامعي$ت: ه$ر باش$د حتم$ا بايد پردازه اي آن را mSFمي گيرد$ و اگ$ر
پخش کرده باشد.
اي$ن نوع پخ$ش بويژ$ه درخص$وص خطاي نامعلوم تحت مطرح مي شود.Byzantineعنوان توافق
47
در موردTerminating R.Bcast ي$ک پردازه پيغامي را ،پخش مي کند و انتظار مي رود که همه پردازه هاي درست
روي آن توافق داشته باشند. مقداري يک درس$ت پردازه هاي هم$ه اجماع، مس$ئله در
ارائ$ه مي دهن$د و س$پس باي$د روي مقداري از مقادي$ر ارائه شده توافق داشته باشند.
براي مسئله اجماع، دو تاPrimitive:الزم داريم Propose )V(decide )V(
V است ممک$$ن ک$$ه اس$$ت مقاديري هم$$ه مجموع$$ه propose شود. مجموع$ه مقاديري ک$ه مي توان$د روي آن
از عبارتست شود( گرفت$$ه )تص$$ميم شود اجماع V{NU} که NUV معرف اين است که همه پردازه ها
مقدار يکساني را ارائه نداده اند.48
:اجماع نيازهاي زير را برآورده مي کند.1Termination نهايت$ا ه$ر پردازه درست روي مقداري :
تص$ميم مي گيرد. را ارائ$ه دهن$د س$پس همه Vاعتبار: اگ$ر هم$ه پرد$ازه ه$ا 2.
تصميم مي گيرند.Vپرد$ازه ها روي تص$ميم بگيرد، سپس Vتوافق: اگر پرد$ازه درستي روي 3.
تصميم مي گيرند.Vهمه پردازه هاي درست هم روي يک 4. حداکث$ر روي نهايت$ا درس$ت پرد$ازه ه$ر جامعي$ت:
تص$ميم بگيرد$ VNUمقدار تص$ميم مي گيرد. اگ$ر روي را ارائه داده باشد.Vسپس پرد$ازه اي بايد
49
و اجماع بي$ن ارتباط بررس$ي بين T.R.Bcastهدف: ؛ و ک$ه در ه$ر حال$ت، در شراي$ط خاصي A.Bcastاجماع و
يکديگر ارز )ه$م مي داني$م يک$ي را مس$ئله طرفي$ن ارزي هم اي$ن بررس$ي تکني$ک Reductionمي داني$م(
است. مس$ئله مس$ئله Bگوئي$م ب$ه منج$ر A تقليل( مي شود
الگوريت$م اگ$ر هر TABمي ياب$د( ک$ه باش$د داشت$ه وجود تبديل کند. B را به الگوريتمي براي Aالگوريتم براي
مثل منجرشدن مثل منجرشدنC.BcastC.Bcast به به FIFO BcastFIFO Bcast :غيررس$ميReduction از B ب$ه A به مواق$ع بعض$ي
A س$خت تر از Bنوشت$ه مي شود. يعن$ي ک$ه B Aشک$ل اگ$ر قاب$ل تقلي$ل به نيس$ت. دو مس$ئله را ه$م ارز گوئي$م
يکديگر باشند.
50
تقليل اجماع بهTRB: از استفاده ب$ا پردازه ه$ر اجماع، ح$ل TRBبراي
را خود پردازه اي proposeمقدار وقتي مي کند. پردازه $ي از را در qمقداري آن را گرفت، تحوي$ل
درج م$ي کن$د و وقت$ي همه وارده هاي ]v]qوارده $ي اولين مقدار Vبردار از non-SF تکمي$ل ش$د، روي تصميم مي گيرد.Vبردار
ب$ا اي$ن روش مي توان ب$ا وجود خطاي ماليم و بدونناهمگامي همگام$ي/ و شبک$ه هم بندي ب$ه توج$ه
را Reductionس$يستم در مورد ه$ر س$يستمي اين (TRBانجام داد. )اجماع به
51
تقليلTRB:به اجماع اي$ن تقلي$ل نياز دارد ک$ه س$يستم همگام بوده و ي$ک دانش
ک$ه در آ$ن فرس$تنده پخ$ش خواهد t0اولي$ه در مورد زمان که مي کني$م فرض همچني$ن باشد. داشت$ه وجود کرد،
شبکه کامال مرتبط است و هيچ خطاي ارتباطي نداريم.
براي پخ$ش پيغامm فرس$تنده ،m را در لحظ$ه t0 ب$ه همه پردازه ه$ر اگ$ر زماني mمي فرس$تد. محدوده $ي در را
t0+ براي اجماع الگوريتم از کرد، درياف$ت propose براي mکردن غيراينصورت در و propose کردن SF
استفاده مي کند. براي تحوي$ل ي$کmsg پردازه ه$ا منتظ$ر الگوريتم اجماع ،
است NUمي مانن$د ت$ا تص$ميم بگيرد. اگ$ر تص$ميم غي$ر از صورت اي$ن غي$ر در مي گيرند. تحوي$ل را را SFمقدار
تحويل مي گيرند.52
اجماع مي تواند براحتي بهA.Bcast.تقليل يابد برايpropose کردن ي$ک مقدار، ي$ک پردازه آن مقدار را
A.Bcast.مي کند براي تحوي$ل، پردازه مقدار اولين پيغامA.Deliver شده
را بر مي دارد.ب$ه ، همه A.Bcastموجود در ترتي ب کل ي ترتي ب کل ي باتوج$ه
پردازه ها مقدار يکساني را برخواهد داشت. اي$ن تقلي$ل فرض$ي در مورد س$يستم ندارد و لذا هر
تعداد خطاي ماليم را تحمل مي کند. تقلي$$ل تنها A.Bcastامکان درحضور اجماع ب$$ه
)خارج از حوصله بحث اين فصل( وجود دارد Crashخطاي
53
در مورد کارآي$ي الگوريتم هاي توزي$ع شده، تنوعي ازاندازه ه$ا مطرح هس$تند. کليدي ه$ا عبارتند از: زمان و اجراي براي الزم يا و مبادل$ه شده پيغام هاي تعداد
الگوريتم. ،الگوريت$م متحم$ل خطا ي$ک معيار معيار در مورد بررس$ي
خط$ا خط$اتحم$ل ي$ا تحم$ل RobustnessRobustness براساس معموال ک$ه تعداد پردازه هاي خطاداري است که مي تواند متحمل
شود.
54
تحمل خطا:1. وجود ک$ه nب$ا مي کني$م فرض پردازنده f تعداد حداکثر
پردازه هاي خطادار است که مي خواهيم تحمل کنيم. براي هري$ک از دو مس$ئلهTRB و اجماع، اگ$ر خطاها اختياري
. باشدf < n/3باشد، نهايتا باشد.n > 3f بايستي
پيچيدگي زماني:1. .در س$يستم هاي ناهمگام، اندازه گيري زمان$ي روش$ن نيست
بنابراين بايستي مالک ديگري براي سنجش بکار برد. درخص$وص پيچيدگ$ي زمان$ي مناس$ب اس$ت ک$ه مدل خاصي از
همگامي معرفي شود: مدلSynch. RoundSynch. Round فرض مي کني$م ک$ه ساعت ها همگام :
گس$سته لحظات در و مي زند. 2، 1، 0شده ان$د تيک ...، گويند.(round) دور امينi را iو i-1زمان بين تيک
55
دور ي$ک در (round)در را زير اعمال پردازه ه$ر ،ترتيب مشخص شده انجام مي دهد:
ارسال پيغام به زيرمجموعه اي از همسايگان1.
در 2. همسايگان بوس$يله شده ارس$ال پيغام درياف$ت شروع همان د$ور.
پيغام هاي دريافت 3. تغيي$ر حال$ت برمبناي حال$ت فعل$ي و شده.
شبکه ي$ک در معموال دوري( )همگام$ي مدل اي$ن ارتباط$ي کامال مرتب$ط و بدون خطاي ارتباطي فرض دور هر در پردازه زوج ه$$ر بنابراي$$ن مي شود.
مي توانند پيغام مبادله کنند.
56
درخصوصTRB :و اجماع درTRB فرض مي ک$ني$م ک$ه فرس$تنده )اگ$ر درس$ت است( پيغام خود
ک$ه هم$ه پردازه ها دوريرا در دور اول ارس$ال مي کند. درنزديک تري$ن پيغام را دريافت کنند الگوريتم خاتمه يافته است.
معياري براي محاس$به زمان اجراي الگوريت$م اس$ت ک$ه دوره$اتعداد و اجماع يکسان است.TRBدرخصوص هر دو مسئله
حداق$ل اجرا، حال$ت بدتري$ن اگر f+1در )حت$ي اس$ت نياز دور داشته باشند(.Crashخطاي پردازه ها
.داشت را الگوريتم زودت$ر اتمام انتظار مي توان ه$م مواردي در (Early- Stopping)
57
کرده Crash تا پردازه fکه هر باشند.
:پيچدگي پيغامي داري$م ک$ه در ي$ک شبکه مدل همگام$ي دوري مدل همگام$ي دوري فرض مي کني$م ک$ه
کامال مرتب$ط، بدون خطاي ارتباط$ي و ب$ا الگوريتم هاي مشخص (Deterministic).اجرا مي شود
مس$$ئله که TRBدرخص$$وص اس$$ت شده داده نشان ،)خطاي حال$ت بدتري$ن در ک$ه دارد وجود تا fالگوريتم هاي$ي
پردازه(: ،با خطاي نامعلوم)nf( تا پيغام برايGeneral Omission کران پايين ،)n+f2( برايSend Omission و Crash پايين کران بهتري$ن ،)n( و
پيغام الزم دارد. ))n+f2، بدترين حالت Send Omissionبراي برايCrash نيازمند شده شناخت$ه الگوريت$م بهتري$ن ،O)n+f
logf( .تا پيغام نياز دارد
در ي$ک محي$ط بدون خط$ا، در ي$ک حالت خاص، تعداد پيغام هاي(.TRB تاست )براي مسئله 2پخش شده
58