1 / 34

مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir

سیستم های توزیع شده فصل 6– جلسه 15. مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92. جدول زمانبندی درس. سرفصل مطالب. مقدمات سنکرون سازی ساعت ها ساعت منطقی انحصار متقابل مشخص کردن محل گره ها الگوریتم های انتخاب.

lore
Download Presentation

مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir

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. سیستم های توزیع شدهفصل 6– جلسه 15 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92

  2. جدول زمانبندی درس

  3. سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب

  4. سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب

  5. مقدمات • مبحثی دیگر وابسته به ارتباطات بین فرآیندها • چگونه فرآیندها با یکدیگر همکاری کرده و سنکرون می شوند. • سنکرون سازی برای • نقض دسترسی همزمان فرآیندها به یک منبع مشترک • توافق فرآیندها روی ترتیب وقوع رخدادها • مثال: پیغام m1از فرآیند P قبل از پیغام m2 از فرآیند Q فرستاده شده • نکته: • سنکرون کردن فرآیندها در سیستم های توزیعی بسیار سخت تر از سیستم های متمرکز است. • زمان سیستم ها با یکدیگر متفاوت است. • زمان مبهم است.

  6. سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب

  7. سنکرون سازی ساعت ها • در یک سیستم متمرکز زمان مبهم نیست: • فرآیند A زمان فعلی سیستم را با یک فراخوانی از کرنل دریافت می کند. • فرآیند B که درخواست زمان را بعد از A می فرستد، مقدار بزرگتری را دریافت می کند. • مثال: برنامه make در یونیکس/لینوکس برای کامپایل تعداد زیادی از فایل های یک پروژه • فقط فایل هایی که تغییر کرده اند را کامپایل می کند. • در زمان کامپایل صرفه جویی می کند. • برنامه make، زمان آخرین تغییر فایل سورس و فایل object را مقایسه می کند. • اگر زمان فایل object کوچکتر از زمان آخرین تغییر فایل سورس بود، می فهمد که باید آن را دوباره کامپایل کند.

  8. سنکرون سازی ساعت ها (2) • سناریوی برنامه make در یک سیستم توزیع شده: • کامپایلر و ویرایشگر در ماشین های مختلفی اجرا می شوند. • ساعت های ماشین ها با یکدیگر متفاوت است. • هرچقدر هم در ابتدا ساعت هایشان با هم تنظیم شده باشد، بعد از مدتی دچار اختلاف می شود. • برنامه make فایل جدید را دیگر کامپایل نمی کند.

  9. سنکرون سازی ساعت ها (3) • مثال های دیگر: • در کاربردهایی که مُهر زمانی فایل ها مهم است. • Financial brokerage (معاملات مالی و بانکی) • Security auditing (حسابرسی های امنیتی) • Collaborative sensing (تشخیص مشارکتی پدیده ها) • آیا می شود ساعت همه ماشین های یک سیستم توزیعی را یکسان کرد؟ • بله، ولی پیچیده است!

  10. ساعت فیزیکی • طرز کار ساعت فیزیکی: • ساعت ها معمولاً ساعت واقعی نیستند. بلکه تایمر هستند. • تعداد نوسانات یک کریستال کوارتز شمارش می شود. • با استفاده از یک شمارنده و یک رجیستر نگهدارنده • وقتی کریستال نوسان می کند، شمارنده مقدارش کم می شود تا صفر که شود. • سپس یک وقفه می دهد و مقدار شمارنده دوباره بارگذاری می شود. • تنظیم کردن تایمر برای اینکه در یک ثانیه 60 وقفه تولید کند. • هر وقفه یک تیک نامیده می شود. • با بوت شدن سیستم، کاربر زمان فعلی را وارد می کند. • قطعه CMOS RAM باتری دارد که زمان را نگه می دارد. • درهر تیک ساعت، تابع مربوط به وقفه یک واحد به زمان ذخیره شده در حافظه اضافه می کند. • به این ترتیب ساعت نرم افزاری به روز نگه داشته می شود.

  11. ساعت فیزیکی (2) • در یک سیستم، حتی اگر ساعت نرم افزاری از ساعت واقعی مقداری اختلاف داشته باشد، اشکالی ایجاد نمی کند. • زیرا ساعت های نسبی برای فرآیندها مهم هستند. • سیستمی که چندین پردازنده دارد: • هر پردازنده یک کریستال دارد. • تضمین یکسان بودن فرکانس کریستال ها امکان پذیر نیست. • بنابراین ساعت های نرم افزاری مقادیر متفاوتی خواهند داشت. • Clock skew: • تفاوت در مقادیر زمان ساعت های نرم افزاری

  12. ساعت فیزیکی (3) • در برخی از سیستم های بی درنگ (real-time) زمان ساعت واقعی لازم است. • ساعت های فیزیکی خارجی لازم می شود. • سؤال: • چگونه این ساعت ها را با یک ساعت جهانی هماهنگ کنیم؟ • چگونه ساعت ها را با یکدیگر سنکرون کنیم؟ • تاریخچه ساعت های فیزیکی: • ساعت های مکانیکی در قرن 17بوسیله ساعت خورشیدی توسط منجمین • یک روز خورشیدی: فاصله بین دو زمانی که خورشید در بالاترین ارتفاع نسبت به زمین قرار دارد (فاصله بین دو ظهر). • طول روز ثابت نیست به خاطر نیروهای اصطکاک و گرانشی که زمین را تحت تأثیر قرار می دهند.

  13. ساعت فیزیکی (4) • ساعت اتمی (توسط فیزیکدان ها) در سال 1948 • تعداد نوسانات اتم سزیوم 133 • میانگین گیری توسط BIH: ساعت TAI • بروز اختلاف از ساعت خورشیدی، به این دلیل که طول روزها طولانی تر می شود! • راه حل: اضافه کردن ثانیه های جهش وقتی که اختلاف ساعت اتمی با ساعت خورشیدی به 800 میلی ثانیه می رسد. • ثانیه های سیستم TAI ثابت است به گونه ای که با حرکت خورشید سنکرون باشد: UTC (Universal Coordinated Time) • که جایگزین سیستم قدیمی تر GMT شده است.

  14. ساعت فیزیکی (5) • سیستم های عامل باید نرم افزاری برای به روز کردن ساعت خود داشته باشند: • زیرا هر چند مدت یکبار BIH ثانیه های جهش را اعلام می کند و حتی 1 ثانیه نیز برای سیستم عامل ها مهم است. • ساعت جهانی UTC به همه ارسال می شود. • از طریق رادیو موج کوتاه • از طریق ماهواره ها • با دقت 10 ms همه ساعتشان را تنظیم می کنند.

  15. سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب

  16. سیستم جهانی مکان یابی (GPS) • مسأله مشابه ساعت جهانی: • تعیین مکان جغرافیایی یک نفر در هر کجای زمین • راه حل: • توسط یک سیستم توزیعی بسیار دقیق بنام GPS • یک سیستم توزیع شده مبتنی بر ماهواره در سال 1978 • ابتدا برای کاربردهای نظامی، امروزه در هر کاربردی برای رهگیری افراد، ... • ویژگی های GPS: • 29 ماهواره هر کدام در ارتفاع 20000 کیلومتری • هر ماهواره 4 ساعت اتمی دارد که توسط ایستگاه های زمینی کالیبره می شوند. • هر ماهواره مکان خود را همراه با مهرزمانی ساعت خود، به صورت پیوسته broadcast می کند. • هر گیرنده زمینی با استفاده از اطلاعات 3 ماهواره می تواند مکان دقیق خود را محاسبه کند.

  17. سیستم جهانی مکان یابی (2) • فرض: همه ساعتها یکسان هستند. • حالت دو بعدی • ماهواره ها مراکز دایره ها • محور y ارتفاع، محور x خط مستقیم هم سطح دریا • گسترش به سه بعد • استفاده از 3 ماهواره

  18. سیستم جهانی مکان یابی (3) • در نظر نگرفتن دو مورد: • تأخیر رسیدن اطلاعات ماهواره به گیرنده زمینی • سنکرون نبودن ساعت گیرنده با ساعت ماهواره • فرض: • مُهرزمانی ماهواره درست باشد. • انحراف ساعت گیرنده با ساعت ماهواره • اگر مهرزمانی پیغام دریافتی از ماهواره i، Ti باشد، تأخیر اندازه گیری شده توسط گیرنده عبارتست از: • که برابر مقدار واقعی تأخیر به اضافه انحراف ساعت خودش است.

  19. سیستم جهانی مکان یابی (4) • سیگنال ها با سرعت نور، c، حرکت می کنند. • فاصله اندازه گیری شده از ماهواره برابر است. • با توجه به اینکه di فاصله واقعی بین ماهواره و گیرنده است که: • فاصله اندازه گیری شده را می توان نوشت: • و فاصله واقعی از روابط زیر به دست می آید: • که در آن xi، yi و zi مختصات ماهواره i هستند. • اگر چهار ماهواره داشته باشیم، چهار معادله و چهار مجهول خواهیم داشت و را نیز می توانیم به عنوان یکی از مجهول ها به دست آوریم. چگونه؟

  20. سیستم جهانی مکان یابی (5) • مشکلات GPS: • GPS ثانیه های جهش را در نظر نمی گیرد و بنابراین مقداری از ساعت UTC انحراف دارد. • ساعت اتمی ماهواره کاملاً سنکرون نیستند. • مکان ماهواره به صورت دقیق مشخص نیست. • سرعت انتشار سیگنال کاملاً ثابت نیست. • ... • با وجود این مشکلات، GPS مکان ها را با تقریب 1-5 متر به خوبی محاسبه می کند! • سؤالی که ابتدای این بحث مطرح شد: • آیا می شود ساعت همه ماشین های یک سیستم توزیعی را یکسان کرد؟ • بله، هم به صورت سراسری می شود ساعت یکسان داشت و هم به صورت محلی. • رهیافت های محلی در ادامه ...

  21. سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب

  22. الگوریتم های سنکرون سازی ساعت ها • فرض می شود یک ماشین ساعت دقیق دارد و می خواهیم ساعت بقیه ماشین ها را با آن سنکرون کنیم. • فرض: همه ماشین ها ساعت نرم افزاری که گفتیم را دارند (H تا وقفه در یک ثانیه). • ساعت ماشین p، را C می نامیم. • وقتی زمان UTC، tاست ساعت ماشین p می شود: Cp(t) • اگر همه چیز دقیق و ایده آل بود: Cp(t) = t به ازای همه pها و tها • به بیان دیگر، در حالت ایده آل: • فرکانس ساعت p در زمان t نامیده می شود. • Skew یا اختلاف ساعت عبارتست از: • مقدار اختلاف فرکانس از فرکانس ساعت دقیق • آفست نسبت به زمان t عبارتست از:

  23. الگوریتم های سنکرون سازی ساعت ها (2) • تایمرهای واقعی دقیقاً H تا وقفه در یک ثانیه تولید نمی کنند و خطا دارند. • مثلاً با دقت 10^-5 در دو طرف مقدار H موردنظر • اگر: • می گوییم تایمر در محدوده موردنظر درست کار می کند. • مقدار ثابت توسط سازنده اعلام می شود و maximum drift rate نامیده می شود. • مقدار نوسانات clock skew

  24. الگوریتم های سنکرون سازی ساعت ها (3) • اگر دو ساعت در دو جهت مخالف UTC از یکدیگر در حال دور شدن باشند، در زمان به اندازه از یکدیگر دورند. • اگر طراحان سیستم بخواهند تضمین دهند که دو ساعت بیشتر از از یکدیگر دور نمی شوند، ساعت ها باید حداقل هر ثانیه با یکدیگر سنکرون شوند. • الگوریتم های مختلفی برای سنکرون کردن وجود دارد که: • در دقتی که در این سنکرون سازی دارند با یکدیگر متفاوتند.

  25. الگوریتم های سنکرون سازی ساعت ها (4) • سه روش در این بخش: • روش NTP • الگوریتم برکلی • سنکرون سازی در شبکه های بی سیم

  26. روش NTP • یک راه تنظیم ساعت ها: • ارتباط کلاینت ها با یک سرور که ساعت سرور دقیق است. • مشکل: تأخیر پیغام های ارتباطی روی زمان اثر می گذارد. • بنابراین باید تخمین مناسبی از این تأخیر داشته باشیم. • فرض: تأخیر انتشار از A به B با تأخیر از B به A برابر است. T2-T1 = T4-T3

  27. روش NTP (2) • A می تواند آفست خود نسبت به Bرا به صورت زیر تخمین بزند: • البته زمان را نمی توان به عقب برگرداند • فقط ساعت را کندتر می کنیم (مثلاً تعداد میلی ثانیه هایی که به ازای هر وقفه اضافه می شود را کمتر کنیم). • پروتکل NTP: • تنظیم ساعت دوتا دوتا بین سرورها با یکدیگر انجام می شود. طبق رابطه بالا حساب می شود و مقدار تأخیر رفت وبرگشت: • هشت مقدار بافر می شوند و کمترین مقدار به عنوان بهترین تخمین تأخیر انتخاب می شود. (رابطه دیگری به جز بالا)

  28. روش NTP (3) • در NTP: • سرور B نیز ساعت خودش را با A تنظیم می کند. • اگر ساعت B دقیقتر از A باشد، کار اشتباهی است! • راه حل: در NTP سرورها به لایه های (strata) مختلف دسته بندی می شوند. • سروری با ساعت مرجع می شود stratum-1 • وقتی A با B تماس می گیرد، فقط وقتی ساعتش را تغییر می دهد که سطح stratum آن از B بیشتر باشد. • پس از سنکرون سازی نیز سطح stratum سرور A یکی بیشتر از B می شود. • دقتی که با استفاده از NTP حاصل می شود 1-50 میلی ثانیه است.

  29. روش NTP (4)

  30. الگوریتم برکلی • در روش NTP: سرور زمانی passive است • بقیه ماشین ها به صورت متناوب زمان را از او میپرسند. • در الگوریتم برکلی (در یونیکس برکلی پیاده سازی شد): • یک دیمون زمانی در سرور زمانی وجود دارد که به صورت فعال از ماشین ها می پرسد: الآن ساعت در آن ماشین چند است. • برحسب زمان های دریافتی و میانگین گیری به ماشین ها می گوید که ساعتشان را تندتر یا کندتر کنند. • مزیت الگوریتم برکلی: • نیازی نیست که سرور ساعتش را با ساعت جهانی تنظیم کند. • ساعت دیمون به صورت دستی توسط اپراتور ست می شود.

  31. الگوریتم برکلی (2) • مراحل مختلف الگوریتم برکلی +25

  32. سنکرون سازی در شبکه های بی سیم • در شبکه های بی سیم • انرژی گره ها محدود است و مسیریابی هزینه زیادی دارد. • روش Reference Broadcast Synchronization (RBS) • تلاش می کند ساعت گره ها را یکسان کند (مثل الگوریتم برکلی) نه اینکه همه را با ساعت جهانی تنظیم کند. • تلاش می کند فقط گیرنده ها را سنکرون کند و به فرستنده کاری ندارد (برخلاف روش های قبلی که دو به دو بودند). • فرستنده یک پیغام مرجع به گیرنده ها می فرستد. • با فرض نبودن مسیریابی چندگامه در شبکه های حسگر بی سیم، زمان انتشار پیغام به گره های دیگر ثابت فرض می شود. • زمان انتشار: شروع از ترک پیغام از واسط فرستنده • زمان ساخت پیغام و زمان دسترسی به شبکه در نظر گرفته نمی شود.

  33. روش RBS • هر پیغام شامل مهر زمانی فرستنده است. • در شبکه های بی سیم، روش های دسترسی به رسانه تأخیر ایجاد می کنند که در RBS در نظر گرفته نمی شود. • فقط زمان دریافت در گیرنده مدنظر است.

  34. روش RBS (2) • پیغام m به همه ارسال می شود. • گره p زمان Tp,m که پیغام را دریافت کرده را نگه می دارد. • این زمان از ساعت محلی ماشین گره p خوانده میشود. • دو گره p و q زمان های خود را با یکدیگر مبادله می کنند تا آفست نسبی بین خودشان را به دست آورند: • که در آن M تعداد کل پیغامهای مرجع ارسال شده بین p و q است. • به این ترتیب گره p زمان گره q را نسبت به زمان خودش می داند. • مشکل: ساعت ها بعد از مدتی دقتشان کم می شود و پیغام های آخر زمانشان از دقت کمتری نسبت به پیغام های اول برخوردار است. • به جای میانگین از رگرسیون خطی استفاده می شود:

More Related