58
Advanced Operating Systems Sharif University of Technology Lecturer: Dr. R.Jalili 1

Fault Tolerant Broadcast

  • 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

Page 1: Fault Tolerant Broadcast

Advanced Operating SystemsSharif University of TechnologyLecturer: Dr. R.Jalili

1

Page 2: Fault Tolerant Broadcast

طراح$ي و وري$ف کاربردهاي توزي$ع شده متحم$ل خط$ا بههاي$ي که براي عنوان ي$ک کار پيچيده تلق$ي م$ي شود. پديده

شده مطرح کار اي$$ن س$$ازي اجماع س$$اده شامل ان$$د (Consensus) و چند نوعReliable Broadcast.است اجماع(Consensus):

پردازه رس$يدن براساس امکان ک$ه مشترک تص$ميم ي$ک ب$ه ه$ا شود. هاي اوليه و عليرغم خطا اخذ مي ورودي

کاربرده$ا: انتخاب ره$بر و ي$ا تواف$ق روي مقدار ي$ک سنسور تکرار شده.

پخش همگاني(Reliable Broadcast): ت$ا همه روي پخ$ش همگان$ي در خيل$ي از کاربردهاي الزم اس$ت

ترتيب پيغام روي ي$ا باشند. داشت$ه تواف$ق گرفت$ه تحوي$ل هاي ها توافق داشته باشند. پيغام

2

Page 3: Fault Tolerant Broadcast

ها، کاربردهاي زير مطرح هستند: برمبناي اين پديدهSIFT، Isis، Psync، Amoeba، Delta-4، Transis،

HAS، FAA و Atomic Commitmentگذاري کال تحقيقات زيادي انجام شده اس$ت ولي فرضيات و عالمت

هاست. سازي آن متفاوت مانع از هم:براي بيان دقيق و ساده مطالب خ$ط دقي$ق و مشخص$ي بينSpecification و Algorithm کشيده

شود. مي مفهوم از زياد درنتيجه Reductionاس$$تفاده مس$$ائل، بي$$ن

شان. بندي مسائل براساس پيچيدگي کالسه

ب$ا ي$ک بيان خيل$ي سطح Algorithm وSpecificationامکان ارائ$ه باال

3

Page 4: Fault Tolerant Broadcast

:مدل ارتباطيMessage-Passing

مرسوم از مدل دو و Message-Passingبي$$ن Shared Memory

:مواردها و ارتباطات همگامي پردازهها نوع خطاي پردازهنوع خطاي ارتباطيبندي شبکه همها مشخص يا تصادفي بود$ن پردازه

4

Page 5: Fault Tolerant Broadcast

ها و هم سيستم ارتباطي قابل اعمال هم در مورد پردازه گوئيم )در اين بخش( ک$ه شرايط زير را برآورده همگامهمگامسيستمي را

کند.ه$ا وجود داشت$ه باشد براي تأخي$ر پيغاممحدوده باال )مشخ$ص( مث$ل 1.

)ارسال، انتقال، دريافت(. را با 0 دارد ک$ه حداکث$ر اختالف Cp س$اعت محل$ي Pه$ر پردازه 2.

:tt و همه Pساعت واقعي دارد. براي همه پردازه هاي

ي$ک س$قف و ي$ک ک$ف براي زمان اجراي ي$ک مرحل$ه از کار توس$ط يک 3.پردازه وجود دارد.

توان بنابراين ميTime-Outرا براي هر پيغام اندازه گرفت . روشي براي تشخيص خطا

)1()(

)()()1( 1

tttCtC pp

5

Page 6: Fault Tolerant Broadcast

مي س$اعت همچني$ن همگام هاي توان همگام تقريب ا پيادهتقريب ا کرد. را سازي آن يعن$ي س$اعت بر محدودبودن فاص$له ب$ا ساع$ت هايي ک$ه عالوه ه$ا

کنند: ، شرط زير را برآورده مي(Drift)واقعي

س$اعت مي چني$ن ه$م خط$ا حضور در حت$ي پياده هايي، سازي توانن$د شوند.

هاي تقريبا همگام کاربرد ساعت(Approximately Sync). :بي فرآيندهاي مديريت کنترل سازگاري درن$$$گ، ،Cacheفاي$$$ل،

Authentication... .

س$ازي کند هاي واقع$ي را شبيه تواند س$اعت در خيلي از مس$ائل نيز ميکند. و لذا طرح الگوريتم توزيع شده را آسان مي0=يعني

)()(::,,: tCtCqpt qp

6

Page 7: Fault Tolerant Broadcast

ناهمگام ناهمگامس يستمي ميس يستمي خوانده اگر شود ، زمان Clock Driftاي براي تاخي$ر پيغامي، محدوده

باشد. نداشته وجود کار ي$ک از مرحل$ه ي$ک اجراي وجود ندارد.Timingهيچ فرضي در مورد

:همگام$ي و ناهمگام$ي دو ح$د افراطي براي توج ه:توج ه از س$يستم بخشي روي مثال هس$تند. واقع$ي هاي ، ...( محدوديت وجود دارد و Driftه$ا )تاخي$ر، ويژگي

روي بخشي نه.

7

Page 8: Fault Tolerant Broadcast

هاي خطا براي پردازه شامل: مدلCrashSend OmissionReceive OmissionGeneral OmissionByzantine )نامعلوم( نامعلوم همراه باMessage Authentication

براي مکانيزمي ول$$ي پردازه اختياري Authenticationرفتار خطا پيغام پردازه يعن$ي دارد. وجود نمي ه$ا فالن دار از که توان$د

اگ$ر چني$ن پيغامي حت يحت يپردازه درس$ت پيغام درياف$ت کرده اس$ت ارسال نشده باشد.

هاي همگام و هم اي$ن دس$ته از خط$ا ه$م در مورد س$يستمخطاهاي س$يستم معهذا، هستند. مطرح ناهمگام هاي

هاي همگام مورد دارند. زماني تنها در مورد سيستم

8

Page 9: Fault Tolerant Broadcast

زماني پردازه خطاهاي درمعرض را (Timing)اي هاي زير خطا کند: دانيم که به يکي از روش مي

خطاهايGeneral Omission.)را تاييد کند )مرتکب شود Driftاش از محدوده مشخص شده تجاوز کند. ساعت محلي محدوده زمان$ي الزم براي اجراي ي$ک مرحل$ه از کاري را نقض

کند.:از لحاظ جدي بودن

General Omission < Timing < Byzantineک$ه جدي نوع خطاهاي$ي از خطاي ب$ه نباشند Timingت$ر

Benignه$ا رفتار$ اختياري ندارند و )مالي$م( گوين$د:: پرداز$هفرستند. اي در الگوريتم را نمي بيني شده پيش يا پيغام غير

9

Page 10: Fault Tolerant Broadcast

نوع خطاهاي مؤثر در خطوط ارتباطي

Crashايستد. : کانال از ارسال پيغام ميOmissionهاي ارس$ال شده از طري$ق کانال از بين : پيغام

روند. مي اختياري(Byzantine)پيغام تولي$د حت$ي هم : غل$ط هاي

ممکن است.Timingپيغام آن ه$ا : مشخص$ات از کندت$ر ي$ا تندت$ر ها

شود. ارسال مي

10

Page 11: Fault Tolerant Broadcast

پردازه ک$ه کني$م بوسيله فرض محاوره Bcastه$ا از مي بخشي تنه$ا خط$ا، رخداد درص$ورت کنند.

مي پردازه درياف$ت را پيغ$ام نياز ه$ا بنابراين کنند. داشته باشيم.Reliable Bcastداريم که يک

ضعيف( مطمئ$ن همگان$ي پخ$ش ترين غيررس$مي:: تضمين Bcastگون$ه را ويژگ$ي س$ه نظ$ر( مورد

کند: ميپردازه پيغام هم$$ه مجموعه روي درس$$ت هاي هاي

دريافت کرده توافق داشته باشند.هاي هم$ه پيغامBcastهاي درست شده بوس$يله پرد$ازه

دريافت شده باشند..هيچ پيغام مغلوطي دريافت نشده باشد

11

Page 12: Fault Tolerant Broadcast

:توج$ه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

Page 13: Fault Tolerant Broadcast

اوليه عم$ل دو کال داريم. الزم را باال در شده مطرح شرط س$ه (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

Page 14: Fault Tolerant Broadcast

سؤال: اگرPدر حين پخش$ با خطا مواجه شد؟ کنند( اند )مي يا همه دريافت کردهکند( يا هيچکس دريافت نکرده )نمي

اگ$رP، broadcast)m( بالفاصله و فراخوان$د را Crashهاي درس$ت از قص$د کن$د، پردازهP بر پخش

mشون$د و ي$ا اگ$ر بخش$ي از اطالعات )به مطل$ع نميآن هم$ه باش$د، شده ارس$ال کاف$ي( دريافت ح$د را

خواهند کرد.

14

Page 15: Fault Tolerant Broadcast

آ$ن ممکن ب$ه توج$ه بدون دارد ک$ه پيغام$ي محتواي$ي ه$ر تواند اس$ت س$وء تفس$ير پي$ش آيد. چني$ن پيغام$ي وقت$ي مي

پردازه ي$ک دانسته Bcastتوس$ط محتواي$ش ک$ه شود محتواي کاربردهاي$ي، در مثال پيغامmشود. هاي شامل

Bcast شده توسط فرستنده m .است پيغام لغ$و شام$ل پيغام ي$ک محتواي بلي$ط، رزرو در هايي مثال

داده انجام را آ$ن رزرو ک$ه ي$ک سايت اس$ت در نباي$د لغ$و اند. تحوي$ل شود ک$ه آ$ن س$ايت محتواي پيغام را قبال دريافت نکرده

است.

ب$ه نياز کاربرد که R.Bcast، ي$ک FIFO Bcastبنابراي$ن شرط زير را برآورده کند:

FIFO Orderپردازه اگ$ر از mاي : قب$ل را m ،کند پخ$ش پردازه هي$چ نباي$د $س$پس درس$تي کن$د، مگر mي درياف$ت را

را تحويل گرفته باشد.mکه قبال آن15

Page 16: Fault Tolerant Broadcast

ترتي$بFIFO براي موقع$ي مناس$ب اس$ت که محتواي mتنه$ا پيغام ، mهاي ارس$ال شده فرستنده شام$ل

از ول$ي mقب$ل باشد. m به وابس$ته اس$ت ممک$ن هم m قب$ل از ارس$ال mهاي تحوي$ل شده ب$ه پيغامباشد.

کاربرد ي$ک در با Net Newsمثال: کاربران اگ$ر ،هايشان را بفرس$تند، س$ناريوي زير پيغامFIFOترتي$ب

رخ خواهد داد:A ،ي$ک پيغام م$ي فرس$تد B روي سايت ديگري پيغام A را

را قبل از B پيغام Cکن$د، گرفت$ه و جواب آنرا ارس$ال ميکند. کند. پاسخ را بد تفسير مي دريافت ميAپيغام

16

Page 17: Fault Tolerant Broadcast

اوليه را deliver و broadcastاگ$ر اجراي اعمال f قبل از eان$د، واقع$ه وقايع$ي تلق$ي کني$م ک$ه رخ داده

اگگر:efرخ داده است به ترتيب اجرا کرده باشد، ياf و eيک پردازه 1..2e پخش يک پيغام مثل m و fتحويل آن باشد، يا hf و ehيي وجود دارد که hواقعة 3.

17

اين رابطه غيرحلقوي است چون در دنياي واقع، تحويل پيغام پس از ارسال آن رخ

دهد. مي

Page 18: Fault Tolerant Broadcast

Causal Bcast ي$ک Reliable Bcast اس$ت که نياز زير را ارضاء کند:

ترتي ب علّ ي: اگ ر پخ ش ترتي ب علّ ي: اگ ر پخ شmm عاّّل قبل عاّّل قبل پخ ش پخ ش از هيچ mmاز س پس باش د هيچ س پس باش د

درس تي درس تي پردازه ي دريافت mmپردازه ي را دريافت را آن ک ه مگ ر آن ک ه نمي کن د مگ ر تحويل mmنمي کن د را تحويل را

گرفته باشد.گرفته باشد.

18

Page 19: Fault Tolerant Broadcast

نامربوط عال² پيغام هاي ترتيب ب$ه کاري ²$ي عل پخ$ش$ ندارد. پردازه هاي درس$ت ممک$ن است پيغام هاي عال²

نامربوط را با ترتيب نايکساني بگيرند. مثال ي$ک پايگاه داده تکرار شده را درنظ$ر بگيري$د ک$ه دو نسخه از

داراي x را در س$ايت هاي متفاوتي نگه مي دارند. در ابتدا xحس$اب تومان است.,000100

تومان واري$ز مي ک$ند. پيغام 20,000ي$ک کاربر m «20,000 به x اضافه شود» پخش مي شود.

پيغام ديگري س$ايت از زمان، همي$ن به m «10%در بهره x عال² ب$ه ه$م مربوط نيستند m و mافزوده شود» پخ$ش مي شود.

اي$ن دو ب$ه ه$ر ترتي$بي مي توانن$د ب$ه هم$ه سايت ها C.Bcastو لذا ب$ا برسند.

xناسازگاري مقادير نسخ

19

Page 20: Fault Tolerant Broadcast

A.Bcast پردازه هاي درست ک$ه هم$ه الزم مي دان$د بگيرند. تحويل يکس$اني ترتي$ب ب$ا را پيغام ه$ا هم$ه يعن$ي هم$ه پردازه ه$ا دي$د يکس$اني از س$يستم داشته

باشند.A.Bcast ي$ک R.Bcast را زير ترتي$ب ک$ه اس$ت

برآورده کند: درست پردازه هاي اگ ر کل ي: پردازه هاي درست ترتي ب اگ ر کل ي: و ppترتي ب و qq

و و mmپيغامهاي پيغامهاي mm ،باشند تحوي ل گرفت ه باشند، را تحوي ل گرفت ه را از pp، ، mmس پسس پس قب ل را از قب ل را mm مي گيرد مي گيرد تحويل تحويل

تحويل بگيرد.تحويل بگيرد. mm را قبل از را قبل از qq، ، mmاگر اگر

20

Page 21: Fault Tolerant Broadcast

A.Bcast نيازي ب$ه تحوي$ل FIFO پيغام ها ندارد. براي ب$ا خطاي مقطعي mمثال ي$ک پردازه درحي$ن پخ$ش$

را پخ$ش$ کرده است mمواج$ه شده اس$ت و س$پس را دريافت کرده اند. mو پردازه هاي درست تنها

بنابراي ن بنابراي نA.BcastA.Bcast از قويتر از قويتر FIFO BcastFIFO Bcast نيست.نيست.

:لذاFIFO A.Bcast ي$ک R.Bcast شرط دو که را متقاعد مي کند.FIFOترتيب کلي و

21

Page 22: Fault Tolerant Broadcast

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

Page 23: Fault Tolerant Broadcast

خيل$ي از کاربرده$ا نياز دارن$د ک$ه اگ$ر پيغام$ي درياف$ت ش$د حتمادر ي$ک محدوده زمان$ي مشخص$ي از لحظ$ه پخ$ش دريافت شود.

گويند.-timelinessاين ويژگي را اندازه زمان محليزمان محليو زمان واقع$يزمان واقع$يزمان ب$ه يک$ي از دو شک$ل

گيري مي شود.-timeliness با زمان واقعي(: اگر پيغامي در لحظه(t پخش

دريافت نکند. t+tشد، هيچ پردازه درستي آن را پس از محلي زمان بي$ن زمان$ي تفاوت باي$د محل$ي، زمان مورد در

پخش کننده و تحويل گيرنده محدود باشد. پيغام ک$ه ه$ر ي$ک زمان مهر mفرض مي کني$م )ts)m شام$ل

است که زمان پخش کننده را مشخص مي کند. -timeliness :)محل$ي زمان هيچ )ب$ا ک$ه دارد وجود ي$ي

)برحسب ts)m(+ را پ$س از m، پيغام (p)پردازه درس$تي ( دريافت نمي کند.pساعت

23

Page 24: Fault Tolerant Broadcast

ه$رBcast ي$ي ک$ه شرايط-timeliness را برآورده ناميده مي شود. Timed Bcastکند

بنابراينTimed Reliable Bcast. ...داريم و را تأخي$ر (Latency) اي$ن روش پخ$ش$ گوييم و در

ه$ر ص$ورت مشخ$ص مي کني$م ک$ه زمان واقع$ي است يا منطقي )محلي(.

24

Page 25: Fault Tolerant Broadcast

،توافق شام$ل همگان$ي پخ$ش$ شده مطرح خواص و ترتي$ب محدوديتي -timelinessجامعي$ت، هي$چ

روي پيغام هاي تحويل شده پردازه هاي خطادار وجود ندارد.

تواف$ق تواف$ق مثال ويژگ$يAgreementAgreement اجازه مي ده$د که ي$ک پردازه خطادار پيغام$ي را درياف$ت کن$د ک$ه بوسيله پردازه هاي درس$ت درياف$ت نشده باشد. اين رفتار در

خيلي از کاربردها پذيرفته نيست.

شرايط و ويژگي هاي قوي تري مي توان داشت:

25

Page 26: Fault Tolerant Broadcast

توافق يکنواخت(Uniform Agreement): را دريافت mاگر پردازه اي )اعم از س$الم يا خطادار( پيغام

نهايتا ه$م درس$ت پردازه هاي هم$ه س$پس را mکرد دريافت خواهند کرد.

جامعيت يکنواخت(Uniform Integrity) :، ه$ر پردازه )اع$م از درس$ت يا خطادار( mبراي ه$ر پيغام

بار ي$ک که mحداکث$ر )ب$ه شرط$ي مي کن$د درياف$ت را پيغام پخش شده باشد(.

26

Page 27: Fault Tolerant Broadcast

ثاب$توجود دارد ک$ه هيچ پردازه ي$ي p پيغام m را از زمان ts)m(+پ$$س )برحس$$ب p دريافت ) ممکن است سالم يا خطادار باشد. Pنمي کند.

Uniform FIFO orderUniform Causal orderUniform Total order

براي ه$ر کدام مي توان فرمUniform آن را تعريف کرد.

27

Page 28: Fault Tolerant Broadcast

اگ$ر پردازه اي پيغام$ي را درياف$ت نکن$د )در حال$ي کهپيدا ناسازگاري وضعي$ت کرده ان$د( درياف$ت بقي$ه مي کن$د و براس$اس اي$ن وضعي$ت ناس$ازگار محاسبات

خود را ادامه داده و پيغام پخش$ مي کند

خطا نوع ک$ه )هرچن$د مي شود. آلوده س$يستم ک$ل Omission).بوده است

.الزم اس$ت ب$ه نحوي از اي$ن آلودگي جلوگيري شودمثال اطالعات$ي در ه$ر پيغام باش$د ک$ه ارتباط آن را با پيغام قبل$ي معلوم کن$د و لذا عدم درياف$ت يک پيغام

براحتي قابل کنترل باشد.

28

Page 29: Fault Tolerant Broadcast

:جمع بندي بينابيني:جمع بندي بينابيني

اعتبار: اگ$ر پردازه درستيbroadcast)m( را انجام داد، همه پردازه هاي درست آن را دريافت مي کنند.

پردازه اي اگ$ر همه mتواف$ق: کرد، درياف$ت را

پردازه هاي درست ديگر هم دريافت مي کنند.

جامعي$ت: ه$ر پردازه درس$ت تنه$ا يکبارm را دريافت مي کند اگر پردازه اي آن را پخش$ کرده باشد.

29

Page 30: Fault Tolerant Broadcast

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

Page 31: Fault Tolerant Broadcast

الگوريتم ه$ا ب$ه روش$ي س$لسله مراتبي و اليه اي بيانابتدا يعن$ي بقيه R.Bcastمي شون$د بي$ن س$پس و

براساس آن. هم$ه الگوريتم هاي$ي که بيان مي شود فرضUniform

Integrity.را دارند :قرارداد عالمتگذاري

R براي ReliableF براي FIFOC براي CausalA براي AtomicFA براي FIFO AtomicCA برايCausal Atomic

31

broadcast )T,m(

نوع پخشMessage

deliver)T,m(

Page 32: Fault Tolerant Broadcast

اي پردازه فراخواند )broadcast)T,mاگ$$ر را . کرده استT-Bcast را mگوئيم

براي مثالbroadcast)R,m(را -Timeliness Reliable Bcast پيغامm

خوانيم.

32

Page 33: Fault Tolerant Broadcast

به راحت$ي در س$يستم هاي ناهمگام ب$ا خطاي ماليم پردازهو کانال ارتباطي )بدون افزار( قابل پياده سازي است.

:ايده مبنايي برايR.Bcast ي$ک پيغام، ي$ک پردازه پيغام را ب$ه خود و همه

همسايگانش مي فرستد. به آن را درياف$ت کرد را پيغام$ي پردازه اي ک$ه اول$ي بار براي

مي کند.R.Deliverهمه همسايگانش رله مي کند و سپس آنرا اوليه اعمال ک$ه اس$ت اي$ن و )send )mفرض مان

receive )m(:شرايط زير را برآورده مي کنند اعتبار: اگ$رp، m را ب$ه q بفرس$تد و p و q و کانال ارتباطي

پيغام را دريافت خواهد کرد. qدرست باشند، سپس جامعي$ت يکنواخ$ت: براي ه$رm، q حداکثر يک بار m را از p

را فرستاده باشد.p، mدريافت خواهد کرد اگر

33

Page 34: Fault Tolerant Broadcast

الگوريتم: در هر پردازه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

Page 35: Fault Tolerant Broadcast

را زير شراي$ط زيري$ن شبک$ه ک$ه کني$م فرض اگ$ر برآورده مي کند:

کنند.Fail تا پردازه مي توانند fحداکثر 1.

تا dه$ر دو پردازه درس$ت ب$ا مس$يري ب$ه طول حداکث$ر 2.پردازه و کانال درست به هم متصل هستند.

روي تاخير پيغامي وجود دارد.يک محدود$ه ي باالي 3.

گرفته 4. نظ$ر در ص$فر محل$ي مرحل$ه ي$ک اجراي زمان مي شود.

زماني، 1. و فرض عدم وجود خطاي اي$ن فرضيات ب$ا را برآورده کرد:Real-Time-Timelinessمي توان

خطاي 1. وجود با و General Omissionقض$ي$$ه: )با Timed RBcastفرض هاي باال، الگوريت$م قبل$ي، ي$ک

ساعت واقعي( است با:

35

)( df

Page 36: Fault Tolerant Broadcast

ارتباطي کانال و پردازه ه$ا ک$ه کني$د فرض حال درمعرض خطاي زماني باشند.

هي$چ الگوريتم$ي نم$ي تواندReal–time-Timeliness را تغييرات$ي ب$ا مي توان ول$ي کند. -Local-Timeتض$مي$ن

Timeliness.را برآورده ساخت زمان$$ي محدوده $$ي بين اوال: پيغام هاي روي تنه$$ا

پردازه هاي درس$ت و روي کانال هاي درس$ت قابل اعمال است.

ام:۵فرضمحدوده ي 5. د$ر تقريب$ا د$رس$ت پردازه هاي س$اعت هاي

به واقع$ي محدوده ب$ا س$اعت فاص$له شان و همگامن$د است.

36

Page 37: Fault Tolerant Broadcast

م$ي خواهد پردازه اي وقت$ي الگوريت$م: تغيي$ر را mحال و کرده ممهور نيز ارس$ال زمان ب$ه آن را کن$د پخ$ش براي ني$ز شام$ل يک شمارنده پيغام ارس$ال مي کند. ه$ر

p، mهاي پيموده شده اس$ت. وقتي Linkشمارش تعداد ک$ه کرد درياف$ت ت$ا kرا Link کنترل است، پيموده را

دريافت زمان و ارس$ال زمان تفاض$ل آي$ا ک$ه مي کن$د هست يا نه؟ k((1+)+)بزرگتر از

اگر بودp .پيغام را دور مي ريزد در غي$ر اينص$ورت آن را ب$ه همس$ايگان رل$ه کرده و آن را تحويل

مي دهد. فرضيات و زمان$ي خطاي وجود ب$ا تا 1قضي$ه: و 5

ي$ک پخ$ش همگان$ي الگوريت$م الگوريت$م، -Localتغييرات Timed Reliable:است با

37

)1()1()( fdf

Page 38: Fault Tolerant Broadcast

براي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

Page 39: Fault Tolerant Broadcast

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

Page 40: Fault Tolerant Broadcast

الگوريت$م ي$ک ب$ا داشت$ن الگوريتم R.Bcastقضي$ه: ، را ارضاء مي کند.FIFOباال ترتيب يکنواخت

اگ$ر الگوريت$م مبنايي ويژگي هايUniform Agreement الگوريت$م مشتق شده -timelinessي$ا را ارضاء کنن$د،

نيز چنين خواهد بود.

40

Page 41: Fault Tolerant Broadcast

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

Page 42: Fault Tolerant Broadcast

prevDlvrs ک$ه اس$ت پيغام هاي$ي آخرين p مجموع$ه از Bcast، C.deliver .کرده است

آن ها را پخش مي کند.broadcastبنابراين در

پردازه را qوقت$ي پيغامي دنبال$ه چني$ن ،C.deliver دريافت قبال ک$$ه را دنبال$$ه از پيغام هاي$$ي مي کن$$د،

(C.delive ) نکرده استC.deliver.مي کند

تضمين نيازمن$د الگوريت$م اي$ن FIFO Orderدرس$تي Uniform بوسيله FIFO Bcast.زيرين است

شراي$ط خاص$ي بر الگوريت$م حکمفرم$ا نيست و لذا برايتوپولوژي هاي مختلف ناهمگام(، ي$ا )همگام ه$ر س$يستم

شبکه، و هر تعداد خطاي ماليم کار مي کند.

42

Page 43: Fault Tolerant Broadcast

43

۶قضيه : ب$ا داشت$ن ي$ک الگوريت$مFIFO Bcast ک$ه ترتي$ب يکنواخت

FIFO يکنواخت ترتي$ب باال الگوريت$م س$ازد، برآورد$ه را الگوريتم اگ$ر عالوه ب$ه مي کند. برآورد$ه را ²$ي FIFOعل

Bcast اين کن$د، برآورد$ه را ي$ا يکنواخ$ت تواف$ق شرط الگوريتم نيز برآورده مي کند.

Page 44: Fault Tolerant Broadcast

الگوريتم هي$$چ قبل$$ي، الگوريتم هاي 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

Page 45: Fault Tolerant Broadcast

از پيغام$ي ک$ه ه$ر اس$ت پردازه مجاز پيغام هاي Mه$ر )مجموعه ممک$ن( را پخ$ش همگان$ي کن$د و هي$چ دان$ش قبلي در مورد پيغام هاي

با Bcast پ$س از فراخوان$ي pدر راه و ي$ا بالتکلي$ف ندارد. اگ$ر مثال خط$ا مواج$ه شود پردازه هاي درس$ت نمي توانن$د انتظار داشت$ه باشند

براي پخش هم pکه همه پيغام ها را دريافت مي کنند. حتي از قصد نمي توانند مطلع شوند.

برع$ک$س در مواردي قرار اس$ت ي$ک پردازه پيغام$ي را پخ$ش کند وديگ$ر پردازه ه$ا از اي$ن قص$د مطل$ع هس$تند. مثال در ي$ک س$يستم توزيع شده بي درن$گ، ي$ک س$نسور درج$ه حرارت قرار اس$ت هر از چندگاه پخش ها اي$ن از هرکدام کند. اعالم را حرارت درج$ه )معلوم(

مطرح شود.Terminating R.Bcastمي تواند به عنوان

45

را Bcastنوع پيغام يک هميش$ه پردازه هاي درس$ت دارد هم$ه نياز ک$ه ي$ي Bcast، Crash باش$د و ي$ا قبل از Faultyدرياف$ت کنن$د، حت$ي اگ$ر فرس$تنده

کند.

Page 46: Fault Tolerant Broadcast

پيغام تحوي$ل شده ممک$ن اس$ت پيغام خاصSF باشد بودن فرس$تنده است. Faulty و معرف SFMک$ه

بنابراي$ن مجموع$ه پيغام هاي$ي ک$ه ممک$ن اس$ت دريافت M{FS}شود )تحويل شود(:

فرق اي$ن نوعBcast ب$ا R.Bcast در اي$ن اس$ت که پردازه هاي درس$ت هميش$ه پيغام را دريافت مي کنند. همچني$ن نياز جامعيت$ي ه$م کم$ي رقي$ق مي شود ک$ه به

را SFپردازه ه$ا امکان مي ده$د ک$ه پيغام پخش نشده هم تحويل بگيرند.

46

Page 47: Fault Tolerant Broadcast

Terminating Reliable Bcast را زير شراي$ط برآورده مي کند:

.1Termination پيغامي نهايت$$ا د$رس$$ت پردازه ه$$ر :دريافت مي کند.

اعتبار: اگ$ر فرس$تنده درس$ت باش$د و پيغام$ي پخ$ش کند 2.سپس همه پرد$ازه هاي د$رست آن را دريافت مي کنند.

توافق 3.

تحويل 4. پيغام ي$ک پرد$ازه درس$ت حداکث$ر جامعي$ت: ه$ر باش$د حتم$ا بايد پردازه اي آن را mSFمي گيرد$ و اگ$ر

پخش کرده باشد.

اي$ن نوع پخ$ش بويژ$ه درخص$وص خطاي نامعلوم تحت مطرح مي شود.Byzantineعنوان توافق

47

Page 48: Fault Tolerant Broadcast

در موردTerminating R.Bcast ي$ک پردازه پيغامي را ،پخش مي کند و انتظار مي رود که همه پردازه هاي درست

روي آن توافق داشته باشند. مقداري يک درس$ت پردازه هاي هم$ه اجماع، مس$ئله در

ارائ$ه مي دهن$د و س$پس باي$د روي مقداري از مقادي$ر ارائه شده توافق داشته باشند.

براي مسئله اجماع، دو تاPrimitive:الزم داريم Propose )V(decide )V(

V است ممک$$ن ک$$ه اس$$ت مقاديري هم$$ه مجموع$$ه propose شود. مجموع$ه مقاديري ک$ه مي توان$د روي آن

از عبارتست شود( گرفت$$ه )تص$$ميم شود اجماع V{NU} که NUV معرف اين است که همه پردازه ها

مقدار يکساني را ارائه نداده اند.48

Page 49: Fault Tolerant Broadcast

:اجماع نيازهاي زير را برآورده مي کند.1Termination نهايت$ا ه$ر پردازه درست روي مقداري :

تص$ميم مي گيرد. را ارائ$ه دهن$د س$پس همه Vاعتبار: اگ$ر هم$ه پرد$ازه ه$ا 2.

تصميم مي گيرند.Vپرد$ازه ها روي تص$ميم بگيرد، سپس Vتوافق: اگر پرد$ازه درستي روي 3.

تصميم مي گيرند.Vهمه پردازه هاي درست هم روي يک 4. حداکث$ر روي نهايت$ا درس$ت پرد$ازه ه$ر جامعي$ت:

تص$ميم بگيرد$ VNUمقدار تص$ميم مي گيرد. اگ$ر روي را ارائه داده باشد.Vسپس پرد$ازه اي بايد

49

Page 50: Fault Tolerant Broadcast

و اجماع بي$ن ارتباط بررس$ي بين 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

Page 51: Fault Tolerant Broadcast

تقليل اجماع بهTRB: از استفاده ب$ا پردازه ه$ر اجماع، ح$ل TRBبراي

را خود پردازه اي proposeمقدار وقتي مي کند. پردازه $ي از را در qمقداري آن را گرفت، تحوي$ل

درج م$ي کن$د و وقت$ي همه وارده هاي ]v]qوارده $ي اولين مقدار Vبردار از non-SF تکمي$ل ش$د، روي تصميم مي گيرد.Vبردار

ب$ا اي$ن روش مي توان ب$ا وجود خطاي ماليم و بدونناهمگامي همگام$ي/ و شبک$ه هم بندي ب$ه توج$ه

را Reductionس$يستم در مورد ه$ر س$يستمي اين (TRBانجام داد. )اجماع به

51

Page 52: Fault Tolerant Broadcast

تقليلTRB:به اجماع اي$ن تقلي$ل نياز دارد ک$ه س$يستم همگام بوده و ي$ک دانش

ک$ه در آ$ن فرس$تنده پخ$ش خواهد t0اولي$ه در مورد زمان که مي کني$م فرض همچني$ن باشد. داشت$ه وجود کرد،

شبکه کامال مرتبط است و هيچ خطاي ارتباطي نداريم.

براي پخ$ش پيغامm فرس$تنده ،m را در لحظ$ه t0 ب$ه همه پردازه ه$ر اگ$ر زماني mمي فرس$تد. محدوده $ي در را

t0+ براي اجماع الگوريتم از کرد، درياف$ت propose براي mکردن غيراينصورت در و propose کردن SF

استفاده مي کند. براي تحوي$ل ي$کmsg پردازه ه$ا منتظ$ر الگوريتم اجماع ،

است NUمي مانن$د ت$ا تص$ميم بگيرد. اگ$ر تص$ميم غي$ر از صورت اي$ن غي$ر در مي گيرند. تحوي$ل را را SFمقدار

تحويل مي گيرند.52

Page 53: Fault Tolerant Broadcast

اجماع مي تواند براحتي بهA.Bcast.تقليل يابد برايpropose کردن ي$ک مقدار، ي$ک پردازه آن مقدار را

A.Bcast.مي کند براي تحوي$ل، پردازه مقدار اولين پيغامA.Deliver شده

را بر مي دارد.ب$ه ، همه A.Bcastموجود در ترتي ب کل ي ترتي ب کل ي باتوج$ه

پردازه ها مقدار يکساني را برخواهد داشت. اي$ن تقلي$ل فرض$ي در مورد س$يستم ندارد و لذا هر

تعداد خطاي ماليم را تحمل مي کند. تقلي$$ل تنها A.Bcastامکان درحضور اجماع ب$$ه

)خارج از حوصله بحث اين فصل( وجود دارد Crashخطاي

53

Page 54: Fault Tolerant Broadcast

در مورد کارآي$ي الگوريتم هاي توزي$ع شده، تنوعي ازاندازه ه$ا مطرح هس$تند. کليدي ه$ا عبارتند از: زمان و اجراي براي الزم يا و مبادل$ه شده پيغام هاي تعداد

الگوريتم. ،الگوريت$م متحم$ل خطا ي$ک معيار معيار در مورد بررس$ي

خط$ا خط$اتحم$ل ي$ا تحم$ل RobustnessRobustness براساس معموال ک$ه تعداد پردازه هاي خطاداري است که مي تواند متحمل

شود.

54

Page 55: Fault Tolerant Broadcast

تحمل خطا:1. وجود ک$ه nب$ا مي کني$م فرض پردازنده f تعداد حداکثر

پردازه هاي خطادار است که مي خواهيم تحمل کنيم. براي هري$ک از دو مس$ئلهTRB و اجماع، اگ$ر خطاها اختياري

. باشدf < n/3باشد، نهايتا باشد.n > 3f بايستي

پيچيدگي زماني:1. .در س$يستم هاي ناهمگام، اندازه گيري زمان$ي روش$ن نيست

بنابراين بايستي مالک ديگري براي سنجش بکار برد. درخص$وص پيچيدگ$ي زمان$ي مناس$ب اس$ت ک$ه مدل خاصي از

همگامي معرفي شود: مدلSynch. RoundSynch. Round فرض مي کني$م ک$ه ساعت ها همگام :

گس$سته لحظات در و مي زند. 2، 1، 0شده ان$د تيک ...، گويند.(round) دور امينi را iو i-1زمان بين تيک

55

Page 56: Fault Tolerant Broadcast

دور ي$ک در (round)در را زير اعمال پردازه ه$ر ،ترتيب مشخص شده انجام مي دهد:

ارسال پيغام به زيرمجموعه اي از همسايگان1.

در 2. همسايگان بوس$يله شده ارس$ال پيغام درياف$ت شروع همان د$ور.

پيغام هاي دريافت 3. تغيي$ر حال$ت برمبناي حال$ت فعل$ي و شده.

شبکه ي$ک در معموال دوري( )همگام$ي مدل اي$ن ارتباط$ي کامال مرتب$ط و بدون خطاي ارتباطي فرض دور هر در پردازه زوج ه$$ر بنابراي$$ن مي شود.

مي توانند پيغام مبادله کنند.

56

Page 57: Fault Tolerant Broadcast

درخصوصTRB :و اجماع درTRB فرض مي ک$ني$م ک$ه فرس$تنده )اگ$ر درس$ت است( پيغام خود

ک$ه هم$ه پردازه ها دوريرا در دور اول ارس$ال مي کند. درنزديک تري$ن پيغام را دريافت کنند الگوريتم خاتمه يافته است.

معياري براي محاس$به زمان اجراي الگوريت$م اس$ت ک$ه دوره$اتعداد و اجماع يکسان است.TRBدرخصوص هر دو مسئله

حداق$ل اجرا، حال$ت بدتري$ن اگر f+1در )حت$ي اس$ت نياز دور داشته باشند(.Crashخطاي پردازه ها

.داشت را الگوريتم زودت$ر اتمام انتظار مي توان ه$م مواردي در (Early- Stopping)

57

کرده Crash تا پردازه fکه هر باشند.

Page 58: Fault Tolerant Broadcast

:پيچدگي پيغامي داري$م ک$ه در ي$ک شبکه مدل همگام$ي دوري مدل همگام$ي دوري فرض مي کني$م ک$ه

کامال مرتب$ط، بدون خطاي ارتباط$ي و ب$ا الگوريتم هاي مشخص (Deterministic).اجرا مي شود

مس$$ئله که TRBدرخص$$وص اس$$ت شده داده نشان ،)خطاي حال$ت بدتري$ن در ک$ه دارد وجود تا fالگوريتم هاي$ي

پردازه(: ،با خطاي نامعلوم)nf( تا پيغام برايGeneral Omission کران پايين ،)n+f2( برايSend Omission و Crash پايين کران بهتري$ن ،)n( و

پيغام الزم دارد. ))n+f2، بدترين حالت Send Omissionبراي برايCrash نيازمند شده شناخت$ه الگوريت$م بهتري$ن ،O)n+f

logf( .تا پيغام نياز دارد

در ي$ک محي$ط بدون خط$ا، در ي$ک حالت خاص، تعداد پيغام هاي(.TRB تاست )براي مسئله 2پخش شده

58