1 / 48

سيستم‌عامل پيشرفته محمد داورپناه جزي ترم اول 84-83 دانشكدة برق و كامپيوتر دانشگاه صنعتي اصفهان

سيستم‌عامل پيشرفته محمد داورپناه جزي ترم اول 84-83 دانشكدة برق و كامپيوتر دانشگاه صنعتي اصفهان. فصل سوم: همگامي در سيستم‌هاي توزيع شده. در سيستم توزيع شده همة داستان ارتباط‌ها نيستندبلكه همگامي و نحوة آن هم اهميت دارد.

yestin
Download Presentation

سيستم‌عامل پيشرفته محمد داورپناه جزي ترم اول 84-83 دانشكدة برق و كامپيوتر دانشگاه صنعتي اصفهان

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. سيستم‌عامل پيشرفته محمد داورپناه جزي ترم اول 84-83 دانشكدة برق و كامپيوتر دانشگاه صنعتي اصفهان سيستم‌عامل پيشرفته محمد داورپناه جزي

  2. فصل سوم: همگامي در سيستم‌هاي توزيع شده • در سيستم توزيع شده همة داستان ارتباط‌ها نيستندبلكه همگامي و نحوة آن هم اهميت دارد. • نواحي بحراني، تخصيص منابع، دو به دو ناسازگاري، ارتباط و همكاري بين پروسس‌ها (IPC). • روشهاي مربوط به سيستم پردازنده مثل سمافور و مانيتور در سيستم توزيعي به درد نمي‌خورد. زيرا منبع حافظه مشترك است. سيستم‌عامل پيشرفته محمد داورپناه جزي

  3. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • 1- همگام‌سازي ساعت • هدف جمع‌آوري اطلاعات در يك جا و تصميم‌گيري در مورد آنها نيست (الگوريتم‌ها توزيعي است). • خصوصيات الگوريتم‌هاي توزيعي ص 119. • 1- پخش بودن اطلاعات بين ماشين‌ها 2- تصميم‌گيري پروسس‌ها برمبناي اطلاعات محلي • 3- عدم قبول حتي يك نقطة شكست 4- عدم و جود يك منبع زماني عمومي • سه تاي اول  عدم قبول وجود عناصر مشترك. • سيستم توزيعي بايد قابل اعتمادتر از تك سيستم باشد-توقف يك ماشين بايد همان ماشين را متوقف كند. • پس همگامي بدون تمركز مورد نياز است! • زمان در سيستم متمركز يكي است ولي در توزيعي خير مثال Make زبان C در UNIXشكل 3-1 ص 120 سيستم‌عامل پيشرفته محمد داورپناه جزي

  4. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • ساعت‌هاي منطقي • وجود كريستال،Clock tick, Counferreg , Holding reg . • تفاوت سرعت كريستال‌ها در CPUها تفاوت ساعت : Clock Skew. • آنچه مهم است زمان مطلق نيست بلكه نسبت زمانها به يكديگر است • فقط پروسس‌هاي وابسته بايد Snyc باشند. • مهم توافق زماني بين ماشين‌هاست كه لازم نيست با زمان واقعي مساوي باشد ، به اين زمان منطقي گويند. • ساعت منطقي در مقابل ساعت فيزيكي سيستم‌عامل پيشرفته محمد داورپناه جزي

  5. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم لم‌پورت • → ba يعني a قيل از b اتفاق افتاده (در يك پروسس يا ارسال و دريافت بين دو پروسس)ص 122 • y, x را همزمان گويند اگر x y و y x اشد يعني دو حالت بالا را نداشته باشيم. • a قبل از b عمل واگيري است. • نياز به تابع زمان C(x) داريم كه پس همه پروسس‌هاC(b)<C(a)→ ba. • زمان هميشه افزايشي است و اصلاح آنهم افزايشي است نه كاهشي. • شكل 2-3 ص 123a: پيغام D, C مشكل كلي دارد، بقيه در محاسبة زمان ارسال مشكل دارند. • شكل 2-3 ص 123b: مشكل را با الگوريتم لمپورت حل كرده. افزودن ساعت اگر C(a)<C(b) به اندازه C(a)+1. سيستم‌عامل پيشرفته محمد داورپناه جزي

  6. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • براي زمانهاي مساوي، شماره پروسس به راست مان اضافه شود. • با شرايط زير مي‌توان تخصيص زمان در سيستم توزيعي دارد: • a→b در يك پروسس پس C(a)<C(b). • A ارسال و b دريافت يك پيغام است پس C(a)<C(b). • براي تمام رويدادهاي a, b داريم C(a)C(b). • امكان ترتيب زماني فراهم شد. سيستم‌عامل پيشرفته محمد داورپناه جزي

  7. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • زمانفيزيكي • زمانهاي لمپورت با زمان واقعي تطبيق ندارد و در سيستم‌هاي بلادرنگ اشكال دارد. • دو مشكل: تطبيق همه ساعت‌ها با ساعت حقيقي، تطبيق همه ساعت‌ها با يكديگر. • مفهوم transit of the sun (ظهر) روز خورشيدي (فاصلة دو ظهر در نجوم) شكل 3-3 ص 125. • 300 ميليون سال پيش سال اندازه 400 روز بوده! البته حالا 365 روز طولاني‌تر شده. • احتساب تعداد روز بيشتر و محاسبة متوسط ثانية خورشيدي. سيستم‌عامل پيشرفته محمد داورپناه جزي

  8. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • ساعت اتمي: حاوي سزيم 133: 770/631/192/9 ترانزيشن، در 50 آز وجود دارد. • BIH زمانها را مي‌گيرد و سپس متوسط ‌گيري مي‌كند و ساعت اتمي بين المللي TAI را مي‌دهد 0تعداد تيك از 1/1/1958. فيزيكدانها رئيس شدند! • يك روز اتمي 3µSec كوتاه‌تر از متوسط روز خورشيدي است، ايجاد مشكل در طول زمان. • در سال 1582 پاپ‌گريگوري سيزدهم ده روز از تقويم حذف كرد.  دعوا شد. • شكل 4-3 نحوة همگامي TAI و زمان خورشيدي و معرفي UTC بجاي GMT. • تا كنون 30 تا ثانيه كبيسه داشته‌ايم، زمان وجود 800 ميلي ثانيه اختلاف بين UTC و GMT . • چند راديو و ماهواره‌ها UTC را اعلام مي‌كنند ولي زمان انتقال پيام را هم بايد در نظر گرفت. سيستم‌عامل پيشرفته محمد داورپناه جزي

  9. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • نياز به احتساب اين موارد در سيستم عامل، الگوريتم همگام‌سازي ساعت • اگر يك ماشين WWV (گيرندة UTC) داشته باشد بقيه مي‌توانند همگامش شوند. • اگر نه نياز به الگوريتم همگام‌سازي هرچه دقيقتر داريم. فرض H وقفه در ثانيه و ساعت C • در زمان t روي ماشين p زمان Cp(t) است ايده‌آل: Cp(t)=t p, t. يا dC/dt = 1 • در عمل دقيقآ H وقفه در تايمرها نداريم در نتيجه با دقت 5-10داريم 216002-215998 بجاي 216000=3600×60 • Rate 1-p <= dC/dt<= 1+p p = Maximum Driftحد مجاز، شكل 5-3 ص 128 • دو ماشين با Drift مخالف پس از t داراي 2Pt اختلاف. اختلاف كمتر از  همگامي هر /2p سيستم‌عامل پيشرفته محمد داورپناه جزي

  10. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم كريستين • سنكرونيزه كردن بقيه ماشين‌ها با يك ماشين كه WWV دارد (Time Server). • هر /2p پيغام به TS دريافت زمان هر چه سريعتر(CUTC) ش 6-3 ص 129 • مشكل اصل ساعت فرستنده عقب است و محلي CUTC<C و كار خراب مي‌شود. • بجاي اصلاح يكجا افزايش كمتر در هر وقفه (100 تا در ثانيه) بجاي 10ms مثلا 9ms يا 11ms • مشكل فرعي زمان ارسال پاسخ است، افزودن يك تقريب به زمان ارسالي ش 6-3 ص 129. • اگر مدت سرويس وقفه (I) را بدانيم تقريب (T1-T0-I) زمان طي يك طرف • راه ديگر تحليل تعدادي ارسال و دريافت، حذف مقادير عجيب و معدل‌گيري بقيه، تعيين مي‌نيمم بعنوان زمان واقعي. • مسائل ديگر چون مسيرهاي مختلف ارسال و دريافت، بار شبكه، ... سيستم‌عامل پيشرفته محمد داورپناه جزي

  11. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم بركلي • براي حالتي كه WWV نداريم، يك ماشين Time Deamon ساعتش دستي ست شود. • بقيه ماشين‌ها را Poll كند، دستور تنظيم به عقب يا جلو بدهد شكل 7-3 ص 130. سيستم‌عامل پيشرفته محمد داورپناه جزي

  12. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم معدل‌گيري • الگوريتم‌هاي بالا عنصر متمركز دارد. الگوريتم با حالت غيرمتمركز هم وجود دارد. • تقسيم زمان به فواصل T0+iR, T0+(i+1)R. • Broad Cast زمان در شروع هر فاصله از هر ماشين (همه در يك لحظه نيست). • ساده ترين روش، جمع‌آوري زمانها در هر ماشين و معدل‌گيري از همه • روش دقيقتر، حذف تعدادي از بزرگترين و كوچكترين‌ها (ذباله) و معدل‌گيري بقيه. • افزودن زمان انتقال هم الگوريتم را دقيقتر مي‌كند. سيستم‌عامل پيشرفته محمد داورپناه جزي

  13. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • داشتن چند منبع زماني خارجي (از WWV، GEOS، …..). • با توجه به شرايط شبكه بايد براي UTC فاصله زماني تعريف كرد بجاي زمان مطلق. • زمانهاي دريافتي بايد معدل‌گيري شود. هيچ پردازنده‌اي پاسخ را فوري نمي‌گيرد. • ماشين‌ها فاصلة زماني خود را Broad Cast كنند در شروع هر دقيقه. • زمان دريافت هم بين منبع و پروسسورهاي مختلف فرق مي‌كند همينطور شرايط شبكه. • تصادف ‍Packetها روي شبكه هم تأخير ايجاد مي‌كند. • پروسسور هم مي‌تواند مشغول كاري باشد و براي مدتي نتيجه را نگاه نكند (در فصل 10 بحث مي‌شود). سيستم‌عامل پيشرفته محمد داورپناه جزي

  14. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • بكارگيري ساعت‌هاي همگام • پيدايش مكانيزم‌هاي همگام‌سازي ساعت‌ها روي شبكه در سال‌هاي اخير. • الگوريتم حداكثر يكبار تحويل پيام. • روش سنتي: شماره‌گذاري پيام‌ها و ذخيره شماره‌ها براي تشخيص پيام تكراري از پيام اصلي. • مشكل:‌ با قطع برق اطلاعات پاك مي‌شوند و چقدر وقت بايد آنرا نگهداشت. • روش بهتر: هر پيغام يك مهر زماني و شماره مسير و حفظ ديرترين مهر براي هر مسير • پيام‌ها با زمان كوچكتر صرف نظر مي‌شود. چون تكراري‌اند. • حداكثر تفاوت ساعت – حداكثر عمر پيغام – زمان جاري=G سيستم‌عامل پيشرفته محمد داورپناه جزي

  15. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • كليه پيغام‌هاي قبل از زمان G به راحتي حذف مي‌شوند. • پيغام‌هاي با شماره مسير نامشخص هم به همين ترتيب عمل مي‌شود. • بعداز هر دلتا t زمان جاري G روي ديسك ثبت مي‌شود. • بعداز هر Crash و سپس Reboot، G از روي ديسك خوانده شود و دلتا t زمان توقف به آن اضافه مي‌شود. • باز هم پيغام‌هاي كهنه‌تر از G بعنوان تكراري حذف مي‌شوند. • ممكن است بعضي پيام‌هاي جديد هم حذف شوند ولي سياست At Most Once است. سيستم‌عامل پيشرفته محمد داورپناه جزي

  16. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • تطبيق Cache Consistency برمبناي ساعت • در سيستم فايل توزيعي عمل Caching محلي براي تسريع استفاده مي‌شود. • در انجام دو تغيير همزمان مشكل عدم تطبيق Cacheها پيش مي‌آيد. • يك راه تميز دادن Cache براي خواندن و براي نوشتن است. • مسئله و قتي است كه نوشتني بعد از يك خواندن انجام شود كه Cache خواندن را بايدInvalidate كرد، زمان سربار دارد ولي با روش همگامي ساعت‌ها برطرف مي‌شود. • روي هر فايل Cache شده يك Lease گذاشته مي‌شود (مدتي كه Valid است). سيستم‌عامل پيشرفته محمد داورپناه جزي

  17. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • بعداز مدت فوق Clientدرخواست تجديد مي‌دهد اگر هم نياز نداشت كه Cache را Timeout مي‌كند. • در آينده اگر نياز داشت عدم تغيير آنرا از Server مي‌پرسد (با مهر زماني)، اگر نكرده يك Lease جديد رويش مي‌گذارد. • اگر نوشتن بعداز تعدادي خواندن انجام شود Server از همه Client هاي خواننده درخواست Timeout زودرس روي Lease ها مي‌دهد. • اگرمثلايكيهم Crash كرده Server صبرمي‌كندتا Timeout گردد. • براياينكهنمي‌توانتفاوتآهستهبودنو Crash رافهميددراينروش Lease Timeout كارراحلكرده. سيستم‌عامل پيشرفته محمد داورپناه جزي

  18. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • 2- دو به دو ناسازگاري • براي اطمينان از دسترسي انحصاري به داده‌هاي مشترك از ناحيه بحراني استفاده مي‌شود. • در تك پروسسوري با يك سمافور يا Monitor مشكل حل است. • حالت چند كامپيوتري يا چندپروسسوري اينجا بحث مي‌شود. سيستم‌عامل پيشرفته محمد داورپناه جزي

  19. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • يك الگوريتم متمركز • داشتن يك ماشين هماهنگ‌كننده براي نواحي بحراني شكل 8-3 ص 134. • روش عادلانه، داراي پياده‌سازي ساده و حاوي سه پيغام (Release, Grant, Req) است. • هماهنگ‌كننده يك نقطه شكست است كه مخالف قرار ما است، شلوغي آنهم تنگنا خواهد شد. • اگر هماهنگ‌كننده مثل حالت b شكل جوابي ندهد Client نمي‌داند منتظر است يا Crash كرده. سيستم‌عامل پيشرفته محمد داورپناه جزي

  20. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • يك الگوريتم توزيع شده • مبناي كار ترتيب زماني درست بين هر جفت رويداد است مثل روش لمپورت در بخش قبلي. • هر پروسس قبل از ورود به ناحيه بحراني پيغامي حاوي نام ناحيه id خودش و زمان ورود به همه مي فرستد. • بايد روش Reliable، (با Ack) باشد، روش پيام گروهي هم مي‌تواند استفاده شود. • پروسس گيرنده پيام با توجه به وضعيتش يكي از كارهاي زير را انجام مي‌دهد (ص 136). • توي ناحيه نيست و نمي‌خواهد وارد شود: پيغام OK برمي‌گرداند. • توي ناحيه است جواب نمي‌دهد و درخواست را Queue مي‌كند. • اگر قبلاً درخواست ورود داده ولي هنوز وارد نشده مهر زماني آنكه زودتر است برنده مي‌شود. سيستم‌عامل پيشرفته محمد داورپناه جزي

  21. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • هر پروسس درخواست كننده صبر مي‌كند همه OK بدهند و وارد مي‌شود وقتي هم خارج شد به آنها هم كه در صف هستند OK مي‌دهد و صف را خالي مي‌كند. • شكل 9-3 ص 136 حالت تصادف را نشان مي‌دهد. • اينجا (n-1)2 پيام داريم با n پروسسسور روشمتمركز 3 تا، اينجابدوننقطهشكست! • وليبجاييكنقطهشكست n نقطهشكستداريم (يعنيدوتابديداردنسبتبهمتمركز). • توقفهرماشينباانتظارتشخيصدادهنمي‌شود-يكراهروش Timeout است. • مشكلديگرنيازبهارتباطگروهياستكهممكناستوجودنداشتهباشد. • مشكلبعدياينكهبجايشلوغييكپروسسهمةپروسس‌هاشلوغمي‌شوند. • يكراهتضمينيكتعدادحداكثر OK بجايهمهاست. • چرااستفادهمي‌كنيمبراياينكهنشاندهيمالگوريتمتوزيعشدهامكان‌پذيراست. سيستم‌عامل پيشرفته محمد داورپناه جزي

  22. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم Token Ring • شكل 10-3 ص 139 شبكه BUS شكل a پروسس‌ها ترتيبي ندارند. • در نرم‌افزار حلقه منطقي داريم كه هر پروسس جاي مشخص نسبت به بقيه دارد شكل b. • هر پروسس بعدي خود را مي‌شناسد. • در شروع يك Token در حلقه رها مي‌شود به پروسس صفر داده مي‌شود. • هر پروسس اگر وارد ناحيه بحراني نشود Token را رد مي‌كند به بعدي. • هر پروسس اگر بخواهد وارد ناحيه بحراني بشود Token را نگه مي‌دارد تا از ناحيه خارج شود آنگاه رها مي‌كند. سيستم‌عامل پيشرفته محمد داورپناه جزي

  23. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • Starvation پيش نمي‌آيد، حداكثر انتظار n-1 تا مدت ورود و خروج به ناحيه بحراني است. • دو تا اشكال: اولي گم شدن Token كه پيدا كردنش سخت است بدليل شرايط مختلف پروسس‌ها معلوم نيست هر پروسس چقدر Token را نگه مي‌دارد. • دوم شكست يك پروسس كه بايد توسط همسايه‌اش Detect شده و از شبكه حذف شود البته توسط همه. • مقايسهسهالگوريتم • شكل 11-3 ص140 خلاصهمقايسه‌ها سيستم‌عامل پيشرفته محمد داورپناه جزي

  24. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • 3- الگوريتم‌هاي انتخاب • موضوع انتخاب يك پروسس (هماهنگ كننده، رديف كننده و ...) هميشه در سيستم توزيعي مطرح است. • هر پروسس يك شماره شناسائي دارد (يگانه) معمولاً پروسس با بزرگترين شماره مي‌شود هماهنگ كننده. • فرض: همة پروسس‌ها شمارة بقيه را مي‌دانند. • آنچه نمي‌دانند: كدام upاند و كدام Down. • در يك الگوريتم: طوري عمل شود كه همه روي انتخاب Coord توافق داشته باشند. سيستم‌عامل پيشرفته محمد داورپناه جزي

  25. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم بولي • وقتي پروسسي بفهمد Coord جواب نمي‌دهد، درخواست انتخاب Coord مي‌دهد. • P پيغام انتخاب به همه پروسس‌ها با شماره بالاتر از خودش مي‌دهد. • اگر كسي جواب ندهد P برنده مي‌شود و Coord مي‌شود. • اگر يكي با شماره بالاتر جواب بدهد او كار را بدست مي‌گيرد و كار P تمام مي‌شود. • در هر زمان هر پروسس مي‌تواند از پروسس‌هاي زير دست (با شماره كوچكتر) پيغام بگيرد. • او جواب OK مي‌دهد و كار تكرار مي‌شود تا يكي برنده نهائي شود. • آن يكي نتيجه را به همه اعلام مي‌كند. سيستم‌عامل پيشرفته محمد داورپناه جزي

  26. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم رينگ • هر پروسس مي‌داند قبلي‌اش كيست. • پروسسي كه فهميد Coord خراب است شماره‌اش را به قبلي‌اش مي‌دهد. • آنها كه متوقف‌اند skip مي‌شوند. • هر پروسس شمارة خودش را به كميت اضافه مي‌كند. • نهايتاً پيغام به شروع كننده مي‌رسد. • او پروسس با لاترين نمره را بعنوان Coord اعلام مي‌كند. • شكل 13-2 ص 143 سيستم‌عامل پيشرفته محمد داورپناه جزي

  27. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • 4- تراكنش‌هاي اتمي • آنچه تاكنون در مورد همگام‌سازي ديديم خيلي سطح پائين بود (سمافور ، نواحي بحراني، ....) • برنامه‌نويس سطح بالا نياز به تعاريف سطح بالا دارد. يك روش تراكنش‌ها يا اعمال اتمي است. سيستم‌عامل پيشرفته محمد داورپناه جزي

  28. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • مقدمه • داستان عقد قرارداد كه قبل از امضاء مي‌توان برگشت به جائي كه هيچ اتفاقي نيافتاده. • يك پروسس درخواست عملي توسط چند پروسس را اعلام مي‌كند و منتظر مي‌ماند با هم چونه بزنند. • بعد شروع‌كننده درخواست ختم عمليات (Commit) مي‌دهد اگر هم جواب OK بدهند. اينكار انجام مي‌شود اگر نه (يكي جواب ندهد يا OK ندهد) همه برمي‌گردند به حالت قبل از OK و كليه كارها پاك مي‌شود Roll Back)). • در DBMS به اين استراتژي All or Nothing گويند كه كار برنامه‌نويسان را راحت كرد. • سيستم نوارهاي قديم حالت All or Nothing داشتند. • در سيستم‌هاي مدرن مثال انتقال پول 1- برداشت 2- واريز (انجام هر دو در يك تراكنش (اتمي)). • اگر اولي شد دومي نشد بتون برگشت به قبل از 1. سيستم‌عامل پيشرفته محمد داورپناه جزي

  29. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • مدل تراكنش: سيستم= مجموعه‌اي از عمل‌هاي مستقل كه هر كدام امكان شكست دارند. • رده‌هاي حافظه: حافظه RAM، پاك شدن با قطع برق، ديسك،‌خطر crash، • حافظه پايا، فقط خطر سيل و زلزله، ش 15-3 ص 146 حالت b خرابي از a كپي مي‌شود. • خرابي يك بلوك در اثر گرد و خاك حالت C، بلوك از كپي درست اصلاح مي‌شود. • محيط مناسب براي محيط متحمل خرابي. • اجزايي اوليه تراكنش: BT، ET، مرزها براي سياست همه يا هيچ، AT، RD، WRT ص 147. • نوع دستورات اوليه بهنوعكاربردبستگيداردمثال Send و Receive درسيستم Mail. • مثالرزروبليطاز WP به JFIC به NRB به MLD شكل 16-3 ص 148. سيستم‌عامل پيشرفته محمد داورپناه جزي

  30. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • خصوصيت‌هاي تراكنش ص 148: اتمي، سازگار، ايزوله، پايا (ACID). • هر تراكنشي اتمي است (All/Nothing) و در طول اجرا نتايج مياني آن قابل رويت نيست. • يك فايل 100 بايتي، در طول Append 1000 بايت به آن كماكان 100 بايت است و در يك لحظه CMT 1100 بايت مي‌شود. بدون توجه به اينكه چقدر زمان و چقدر كاربرده تا 1000 بايت اضافه شود. • مثال ديگر كپي كردن كه اگر جا نباشد نصفة كپي شده هم پاك مي‌شود. در Dos اينطور نبود. • سازگاري: هر عمل بانكي موازنه حسابها را به هم نمي‌زند مگر در لحظات انجام تراكنش كه قابل رويت نيست. مثال سيستم فايل و عمليات آن سيستم‌عامل پيشرفته محمد داورپناه جزي

  31. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • ايزوله بودن (ترتيب‌پذير): اعمال همزمان را با ترتيب خاصي بتوان انجام داد با همان نتايج • امكان انجام شش ترتيب • مثال شكل 17-3 ص 149 كه برنامه 3 ترتيب پذير نيست. • مسئوليت ترتيب‌پذيري با خود سيستم است. • پايا بودن: بعد از Commit نتايج هميشگي گردد. • عدم تاثير شكستهاي بعدي روي نتايج سيستم‌عامل پيشرفته محمد داورپناه جزي

  32. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • تراكنش‌هاي تو در تو • تراكنش‌ها مي‌توانند فرزند ايجاد كنند (Fork) و آنها هم بنوبه خود. • يك فرزند Commit كند ولي پدر Roll Back كند، نتايج CMT بايد پاك شود (undo). • پس اصول بالا نقض مي‌شود، اين اصول بايد براي تراكنش پدر صدق كند. • نياز به مديريت خيلي پيچيده • هر پدر يك كپي خصوصي دارد، به هر فرزند هم يك كپي مي‌دهد تا روي آن عمل كند • درصورد CMT جايگزين كپي پدر، در صورت RLBK ناپديد • فرزند بعدي نتايج قبلي را مي‌بيند. سيستم‌عامل پيشرفته محمد داورپناه جزي

  33. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • پياده‌سازي • انجام موارد ACID نياز به مديريت بسيار دقيق دارد. • روش فضاي كاري خصوصي: انجام همة اعمال روي كپي خصوصي و جايگزيني در لحظه CMT. • اشكال: هزينه كپي‌سازي همه Objectهاي مورد نياز. • بهينه‌سازي: • ايجاد اشاره‌گر به WS پدر، براي بالاترين سطح ا يجاد اشاره‌گر به نسخه اصلي براي خواندن و ايجاد يك كپي جديد براي عمل نوشتن. اشاره‌گرهاي تو در تو • كپي كردن ايندكس و ركوردهاي اصلاح شده (فقط) شكل 18-3 ص 151. سيستم‌عامل پيشرفته محمد داورپناه جزي

  34. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • روش Write ahead Log (ليست قصدها) • اول يك Log كامل درست مي‌شود بعد تغيير روي كپي اصلي اعمال مي‌شود شكل 19-3 ص2 15. • اگر خواستيم برگرديم مقادير قديمي را از Log جايگزين مي‌كنيم Roll Back. • وقوع شكست قبل از آخرين جمله و بعد از نوشتن Log آن قبل يا بعد از اعمال نهايي • امكان رفتن به جلو و همچنين عقب بر مبناي log سيستم‌عامل پيشرفته محمد داورپناه جزي

  35. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • روش تاييد دو فاري TWO Phase Commit يا CMT اتمي در سيستم توزيعي • عمل CMT لحظه‌اي است، در سيستم توزيع شده عمل‌ها توسط چند ماشين انجام مي‌گيرد و نياز به هماهنگي دارد. • يك پروسس نقش هماهنگ‌كننده دارد، قبل از شروع درخواست CMT يك Log مي‌نويسد. • بعد يك پيغام ”آماده‌شو براي CMT“ براي بقيه همكاران مي‌فرستد. • هر همكاري Log خود را مي‌نويسد و پاسخ OK يا Not OK مي‌دهد يا Timeout مي‌شود. • اگر همه OK دادند CMT و گر نه RLBK مي‌شود در Log هم نوشته مي‌شود. سيستم‌عامل پيشرفته محمد داورپناه جزي

  36. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • شكل 20-3 ص 153. • با وجود log و حافظة پايا، مقاوم در مقابل Crash، • در شكست هماهنگ كننده بعد از نوشتن Log اوليه، پس از زنده شدن كار را دنبال مي‌كند. • بعد از نوشتن نتيجه رأي Crash كند، بعد از up شدن نتيجه را به بقيه مي‌گويد. • اگر يكي از ديگران جواب ندهد ارسال تكرار مي‌شود يا Timeout شود. • اگر بعد از دادن جواب سقوط كند از همانجا بعد ادامه مي‌دهد. سيستم‌عامل پيشرفته محمد داورپناه جزي

  37. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • مكانيزم‌هاي كنترل همزماني (الگوريتم‌ها): مواظبت از سر راه هم قرار گرفتن پروسس‌ها . • قفلكردن:‌قديمي‌ترينوپراستفادهترينمكانيزمبااستفادهازمديرقفلمركزييامحلي. • مديرقفلباتوجهبهليستخود، درخواستهايجديدبرايفايل‌هايقفلشدهراردمي‌كند. • قفلكردنوبازكردنتوسطسيستمتراكنشانجاممي‌شودبدوندخالت User. • جداسازيقفلخواندن (Share) ازقفلنوشتن (exclusive). • محدودةموردقفل: فيلد،ركورد، فايل،جدول، DB، صفحه / بلوكسخت‌افزاري (مسائلمربوط). • فرضما: قفلرويفايل (كهخوبنيست) Locking Granularity. • دانه‌بنديريزتر= توازيبيشتر= محدودهقفلكوچكتر= گرانتر= تعدادقفلبيشتر= Dead Lock بيشتر. سيستم‌عامل پيشرفته محمد داورپناه جزي

  38. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • قفلدوفازيشكل 21-3 برايجلوگيريازDead Lock. • بهنگام‌سازي اصلي در مرحله تقليل قفل، اگر قفلي سر راه بود، آزادسازي صبر و تكرار عمل • ثابت شده TPL ترتيب‌پذيري را تضمين مي‌كند. • در TPL قطعيفازتقليلبعداز CMT يا RLBK انجاممي‌شود. • دومزيت: 1) همةفايل‌هابعداز CMT يا RLBK شدنعملهايقبلي،استفادهمي‌شوند. • 2)اخذوآزاديقفل‌هاتوسطسيستمبدوندرگيريتراكنشانجاممي‌شود. • تراكنش‌هايبههمگيرنمي‌كنندو Cascade Abort پيشنمي‌آيدبدليلاستفادهازاطلاعاتيكهنبايدديدهشود. • امكانبروز Dead Lock حتيدر TPL ، نياز دو پروسس به دو قفل ضربدري. • مكانيزم‌هايپيشگيريكهقبلاًگفتهشدهومكانيزمزماني (قفلبيشاز T ثانيه= Dead Lock). سيستم‌عامل پيشرفته محمد داورپناه جزي

  39. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • كنترل همزماني خوشبينانه • برو جلو هر كاري مي‌خواهي بكن بي‌خيال بقيه، اگر مشكلي بود بعداً فكرش را مي‌كنيم. • فرمان CMT چك مي‌شود اگر فايلي در طول كار عوض شده RLBK شده و كار تكرار مي‌شود. • براي فضاي كاري محلي خصوصي مناسب است. • توازي بسيار بالا، فرغ از Dead Lock، بدون انتظار براي قفل. • عيب: تكرار كل كار، كندشدن در شرايط بار كاري شديد. سيستم‌عامل پيشرفته محمد داورپناه جزي

  40. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • مهر زماني • هر تراكنش در لحظه BT يك مهر زماني مي‌گيرد (الگوريتم لمپورت براي همگامي استفاده مي‌شود). • هر فايل دو مهر خواندن و نوشتن مربوط به آخرين تراكنش بكار برنده آن دارد. • در شرايط عادي هر دسترسي بعداز مهر زماني فايل است. • شكل 22-3 ص 157. • در مقايسه با قفل داراي D.L. نيست كه اين مزيت اصلي است. سيستم‌عامل پيشرفته محمد داورپناه جزي

  41. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • 5- بن‌بست در سيستم‌هاي توزيعي • D.L. در سيستم توزيعي به مراتب پيچيده‌تر است بدليل پراكنده بودن اطلاعات مربوطه بين ماشين‌ها. • بن‌بست ارتباطي: پيغام‌ها به هم گير كرده‌اند و بافر خالي هم نيست. • A B Cدر اينجا هر دو • را يكي مي‌گيريم. • بن‌بست منبعي: رقابت در گرفتن منابع بصورت انحصاري. • احتمال بروز بن‌بست ارتباطي خيلي خيلي ضعيف است. پيام 1 پيام 2 پيام 3 سيستم‌عامل پيشرفته محمد داورپناه جزي

  42. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • استراتژي‌هاي مهم (يادآوري DS1). • الگوريتم شترمرغ: فراموش كردن مسئله. • كشف: صبر كنم بن‌بست شود، كشف كنيم، ترميم كنيم. • جلوگيري از وقوع: اكيداً پيش نيايد. • سعي در اجتناب: تخصيص با دقت لازم در جهت اجتناب از بن‌بست. • مورد 4 در سيستم متمركز هم استفاده نمي‌شود چه رسد به توزيع شده چون خيلي مشكل است 302 بحث مي‌شود. • بخصوص مورد 2 از همه آسان‌تر است كه بعداز وقوع به فكر چاره باشيم. سيستم‌عامل پيشرفته محمد داورپناه جزي

  43. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • كشف بن‌بست توزيع شده • بن‌بست كشف شده نياز به يك قرباني براي حل دارد كه User را ناراضي مي‌كند. • با تراكنش اتمي مي‌توان كار قرباني شده را تكرار كرد با آرزوي موفقيت در دور دوم! سيستم‌عامل پيشرفته محمد داورپناه جزي

  44. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • كشف بن‌بست متمركز • يك پروسس هماهنگ‌كننده همة گراف‌هاي بقيه ماشين‌ها را Union مي‌كند. • با كشف يك سيكل پروسس را Kill مي‌كند. • هر ماشين بايد اطلاعات مورد نياز را به پروسس هماهنگ‌كننده ارسال كند. • حذف يا اضافه شدن هر arc ارسال شود، دوره‌اي arcهاي اضافه يا حذف شده ارسال شود. • هماهنگ‌كننده خودش هر وقت لازم بود درخواست اطلاعات كند. • هر سه روش اشكال دارد. شكل 23-3 ص 160. • بوجود آمدن بن بست نادرست بدليل عدم دريافت بموقع پيام‌ها سه روش سيستم‌عامل پيشرفته محمد داورپناه جزي

  45. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • پيام آزادسازي R بوسيله B بعد از پيام نياز B به ‏T به هماهنگ‌كننده مي‌رسد گر چه زودتر ارسال شده. • هماهنگ‌كننده قبل از ايجاد حلقه به همه اعلام كند پيامي دادند بفرستند و بعد آنها را اعمال كند قبل از ايجاد حلقه. • اين روش خوب است ولي گران است. سيستم‌عامل پيشرفته محمد داورپناه جزي

  46. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • الگوريتم ديگر كشف بن‌بست توزيعي • پروسس‌ها مجازند درخواست منابع چند گانه از جمله قفل كنند. • فاز ترفيع قفل در 2PL سريع‌تر مي‌شود. • پروسس بجاي چند بار انتظار براي چند منبع يكبار براي همه منتظر مي‌ماند. • شكل 24-3: اشكال اصلي در منابع بين ماشيني است. • بردار (گيرنده، ارسال كننده، پروسس بلكه شده) در اثر احضار الگوريتم (چندي ........) ارسال مي‌گردد. • وقتي دوباره به اوليه ارسال كننده رسيد D.L. كشف مي‌شود مثال: بردار (0,8,0) آخر كار. سيستم‌عامل پيشرفته محمد داورپناه جزي

  47. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • راه اول: امر به خودكشي پروسس‌ها به آخر پيام و انتخاب پروسس با شماره بزرگترين براي خودكشي. • توري و عمل هماهنگ نيستند: چگونه پروسس بلوكه شده پيغام بفرستد! • الگوريتم‌هاي زيادي ارائه و منتشر شده ولي بزودي ديگري غلط بودنش را اثبات كرده. • اين زمنيه‌اي است كه هنوز جاي كار زياد دارد. سيستم‌عامل پيشرفته محمد داورپناه جزي

  48. فصل سوم : همگامي در سيستم‌هاي توزيع شده (ادامه) • ممانعت از بن‌بست توزيع شده • عملكرد به نحوي كه بصورت ساختاري بين‌بست امكان‌پذير نباشد. • روشهائي در OS1 بحث شده است رك به كتاب مربوطه. • فقط پروسسي مجاز به انتظار است كه مهر زماني‌اش كمتر است از پروسسي كه برايش صبر مي‌كند. اگر نه Abort مي‌شود (الگوريتم Wait Die) شكل 25-3 ص 164. • فقط پروسسي مجاز به انتتظار است كه مهر زماني‌اش بزرگتر از پروسسي باشد كه برايش صبر مي‌كند. • در هر صورت دنباله صعودي و يا نزولي‌ات كه حلقه ايجاد نمي‌كند. • با جستجو در انتشارات در مورد قفل‌هاي مختلف موجود پروتكل‌هاي مربوطه براي قفل‌كردن و نحوة پياده‌سازي استراتژي 2PL روي آنها حداقل دو صفحه مطلب بنويسيد. • قبل از ظهر از اطاق من بگيريد. سيستم‌عامل پيشرفته محمد داورپناه جزي

More Related