380 likes | 603 Views
سیستم های توزیع شده فصل 6– جلسه 15. مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92. جدول زمانبندی درس. سرفصل مطالب. مقدمات سنکرون سازی ساعت ها ساعت منطقی انحصار متقابل مشخص کردن محل گره ها الگوریتم های انتخاب.
E N D
سیستم های توزیع شدهفصل 6– جلسه 15 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92
سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب
سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب
مقدمات • مبحثی دیگر وابسته به ارتباطات بین فرآیندها • چگونه فرآیندها با یکدیگر همکاری کرده و سنکرون می شوند. • سنکرون سازی برای • نقض دسترسی همزمان فرآیندها به یک منبع مشترک • توافق فرآیندها روی ترتیب وقوع رخدادها • مثال: پیغام m1از فرآیند P قبل از پیغام m2 از فرآیند Q فرستاده شده • نکته: • سنکرون کردن فرآیندها در سیستم های توزیعی بسیار سخت تر از سیستم های متمرکز است. • زمان سیستم ها با یکدیگر متفاوت است. • زمان مبهم است.
سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب
سنکرون سازی ساعت ها • در یک سیستم متمرکز زمان مبهم نیست: • فرآیند A زمان فعلی سیستم را با یک فراخوانی از کرنل دریافت می کند. • فرآیند B که درخواست زمان را بعد از A می فرستد، مقدار بزرگتری را دریافت می کند. • مثال: برنامه make در یونیکس/لینوکس برای کامپایل تعداد زیادی از فایل های یک پروژه • فقط فایل هایی که تغییر کرده اند را کامپایل می کند. • در زمان کامپایل صرفه جویی می کند. • برنامه make، زمان آخرین تغییر فایل سورس و فایل object را مقایسه می کند. • اگر زمان فایل object کوچکتر از زمان آخرین تغییر فایل سورس بود، می فهمد که باید آن را دوباره کامپایل کند.
سنکرون سازی ساعت ها (2) • سناریوی برنامه make در یک سیستم توزیع شده: • کامپایلر و ویرایشگر در ماشین های مختلفی اجرا می شوند. • ساعت های ماشین ها با یکدیگر متفاوت است. • هرچقدر هم در ابتدا ساعت هایشان با هم تنظیم شده باشد، بعد از مدتی دچار اختلاف می شود. • برنامه make فایل جدید را دیگر کامپایل نمی کند.
سنکرون سازی ساعت ها (3) • مثال های دیگر: • در کاربردهایی که مُهر زمانی فایل ها مهم است. • Financial brokerage (معاملات مالی و بانکی) • Security auditing (حسابرسی های امنیتی) • Collaborative sensing (تشخیص مشارکتی پدیده ها) • آیا می شود ساعت همه ماشین های یک سیستم توزیعی را یکسان کرد؟ • بله، ولی پیچیده است!
ساعت فیزیکی • طرز کار ساعت فیزیکی: • ساعت ها معمولاً ساعت واقعی نیستند. بلکه تایمر هستند. • تعداد نوسانات یک کریستال کوارتز شمارش می شود. • با استفاده از یک شمارنده و یک رجیستر نگهدارنده • وقتی کریستال نوسان می کند، شمارنده مقدارش کم می شود تا صفر که شود. • سپس یک وقفه می دهد و مقدار شمارنده دوباره بارگذاری می شود. • تنظیم کردن تایمر برای اینکه در یک ثانیه 60 وقفه تولید کند. • هر وقفه یک تیک نامیده می شود. • با بوت شدن سیستم، کاربر زمان فعلی را وارد می کند. • قطعه CMOS RAM باتری دارد که زمان را نگه می دارد. • درهر تیک ساعت، تابع مربوط به وقفه یک واحد به زمان ذخیره شده در حافظه اضافه می کند. • به این ترتیب ساعت نرم افزاری به روز نگه داشته می شود.
ساعت فیزیکی (2) • در یک سیستم، حتی اگر ساعت نرم افزاری از ساعت واقعی مقداری اختلاف داشته باشد، اشکالی ایجاد نمی کند. • زیرا ساعت های نسبی برای فرآیندها مهم هستند. • سیستمی که چندین پردازنده دارد: • هر پردازنده یک کریستال دارد. • تضمین یکسان بودن فرکانس کریستال ها امکان پذیر نیست. • بنابراین ساعت های نرم افزاری مقادیر متفاوتی خواهند داشت. • Clock skew: • تفاوت در مقادیر زمان ساعت های نرم افزاری
ساعت فیزیکی (3) • در برخی از سیستم های بی درنگ (real-time) زمان ساعت واقعی لازم است. • ساعت های فیزیکی خارجی لازم می شود. • سؤال: • چگونه این ساعت ها را با یک ساعت جهانی هماهنگ کنیم؟ • چگونه ساعت ها را با یکدیگر سنکرون کنیم؟ • تاریخچه ساعت های فیزیکی: • ساعت های مکانیکی در قرن 17بوسیله ساعت خورشیدی توسط منجمین • یک روز خورشیدی: فاصله بین دو زمانی که خورشید در بالاترین ارتفاع نسبت به زمین قرار دارد (فاصله بین دو ظهر). • طول روز ثابت نیست به خاطر نیروهای اصطکاک و گرانشی که زمین را تحت تأثیر قرار می دهند.
ساعت فیزیکی (4) • ساعت اتمی (توسط فیزیکدان ها) در سال 1948 • تعداد نوسانات اتم سزیوم 133 • میانگین گیری توسط BIH: ساعت TAI • بروز اختلاف از ساعت خورشیدی، به این دلیل که طول روزها طولانی تر می شود! • راه حل: اضافه کردن ثانیه های جهش وقتی که اختلاف ساعت اتمی با ساعت خورشیدی به 800 میلی ثانیه می رسد. • ثانیه های سیستم TAI ثابت است به گونه ای که با حرکت خورشید سنکرون باشد: UTC (Universal Coordinated Time) • که جایگزین سیستم قدیمی تر GMT شده است.
ساعت فیزیکی (5) • سیستم های عامل باید نرم افزاری برای به روز کردن ساعت خود داشته باشند: • زیرا هر چند مدت یکبار BIH ثانیه های جهش را اعلام می کند و حتی 1 ثانیه نیز برای سیستم عامل ها مهم است. • ساعت جهانی UTC به همه ارسال می شود. • از طریق رادیو موج کوتاه • از طریق ماهواره ها • با دقت 10 ms همه ساعتشان را تنظیم می کنند.
سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب
سیستم جهانی مکان یابی (GPS) • مسأله مشابه ساعت جهانی: • تعیین مکان جغرافیایی یک نفر در هر کجای زمین • راه حل: • توسط یک سیستم توزیعی بسیار دقیق بنام GPS • یک سیستم توزیع شده مبتنی بر ماهواره در سال 1978 • ابتدا برای کاربردهای نظامی، امروزه در هر کاربردی برای رهگیری افراد، ... • ویژگی های GPS: • 29 ماهواره هر کدام در ارتفاع 20000 کیلومتری • هر ماهواره 4 ساعت اتمی دارد که توسط ایستگاه های زمینی کالیبره می شوند. • هر ماهواره مکان خود را همراه با مهرزمانی ساعت خود، به صورت پیوسته broadcast می کند. • هر گیرنده زمینی با استفاده از اطلاعات 3 ماهواره می تواند مکان دقیق خود را محاسبه کند.
سیستم جهانی مکان یابی (2) • فرض: همه ساعتها یکسان هستند. • حالت دو بعدی • ماهواره ها مراکز دایره ها • محور y ارتفاع، محور x خط مستقیم هم سطح دریا • گسترش به سه بعد • استفاده از 3 ماهواره
سیستم جهانی مکان یابی (3) • در نظر نگرفتن دو مورد: • تأخیر رسیدن اطلاعات ماهواره به گیرنده زمینی • سنکرون نبودن ساعت گیرنده با ساعت ماهواره • فرض: • مُهرزمانی ماهواره درست باشد. • انحراف ساعت گیرنده با ساعت ماهواره • اگر مهرزمانی پیغام دریافتی از ماهواره i، Ti باشد، تأخیر اندازه گیری شده توسط گیرنده عبارتست از: • که برابر مقدار واقعی تأخیر به اضافه انحراف ساعت خودش است.
سیستم جهانی مکان یابی (4) • سیگنال ها با سرعت نور، c، حرکت می کنند. • فاصله اندازه گیری شده از ماهواره برابر است. • با توجه به اینکه di فاصله واقعی بین ماهواره و گیرنده است که: • فاصله اندازه گیری شده را می توان نوشت: • و فاصله واقعی از روابط زیر به دست می آید: • که در آن xi، yi و zi مختصات ماهواره i هستند. • اگر چهار ماهواره داشته باشیم، چهار معادله و چهار مجهول خواهیم داشت و را نیز می توانیم به عنوان یکی از مجهول ها به دست آوریم. چگونه؟
سیستم جهانی مکان یابی (5) • مشکلات GPS: • GPS ثانیه های جهش را در نظر نمی گیرد و بنابراین مقداری از ساعت UTC انحراف دارد. • ساعت اتمی ماهواره کاملاً سنکرون نیستند. • مکان ماهواره به صورت دقیق مشخص نیست. • سرعت انتشار سیگنال کاملاً ثابت نیست. • ... • با وجود این مشکلات، GPS مکان ها را با تقریب 1-5 متر به خوبی محاسبه می کند! • سؤالی که ابتدای این بحث مطرح شد: • آیا می شود ساعت همه ماشین های یک سیستم توزیعی را یکسان کرد؟ • بله، هم به صورت سراسری می شود ساعت یکسان داشت و هم به صورت محلی. • رهیافت های محلی در ادامه ...
سرفصل مطالب • مقدمات • سنکرون سازی ساعت ها • ساعت فیزیکی • سیستم جهانی مکان یابی (GPS) • الگوریتم های سنکرون سازی ساعت ها • ساعت منطقی • انحصار متقابل • مشخص کردن محل گره ها • الگوریتم های انتخاب
الگوریتم های سنکرون سازی ساعت ها • فرض می شود یک ماشین ساعت دقیق دارد و می خواهیم ساعت بقیه ماشین ها را با آن سنکرون کنیم. • فرض: همه ماشین ها ساعت نرم افزاری که گفتیم را دارند (H تا وقفه در یک ثانیه). • ساعت ماشین p، را C می نامیم. • وقتی زمان UTC، tاست ساعت ماشین p می شود: Cp(t) • اگر همه چیز دقیق و ایده آل بود: Cp(t) = t به ازای همه pها و tها • به بیان دیگر، در حالت ایده آل: • فرکانس ساعت p در زمان t نامیده می شود. • Skew یا اختلاف ساعت عبارتست از: • مقدار اختلاف فرکانس از فرکانس ساعت دقیق • آفست نسبت به زمان t عبارتست از:
الگوریتم های سنکرون سازی ساعت ها (2) • تایمرهای واقعی دقیقاً H تا وقفه در یک ثانیه تولید نمی کنند و خطا دارند. • مثلاً با دقت 10^-5 در دو طرف مقدار H موردنظر • اگر: • می گوییم تایمر در محدوده موردنظر درست کار می کند. • مقدار ثابت توسط سازنده اعلام می شود و maximum drift rate نامیده می شود. • مقدار نوسانات clock skew
الگوریتم های سنکرون سازی ساعت ها (3) • اگر دو ساعت در دو جهت مخالف UTC از یکدیگر در حال دور شدن باشند، در زمان به اندازه از یکدیگر دورند. • اگر طراحان سیستم بخواهند تضمین دهند که دو ساعت بیشتر از از یکدیگر دور نمی شوند، ساعت ها باید حداقل هر ثانیه با یکدیگر سنکرون شوند. • الگوریتم های مختلفی برای سنکرون کردن وجود دارد که: • در دقتی که در این سنکرون سازی دارند با یکدیگر متفاوتند.
الگوریتم های سنکرون سازی ساعت ها (4) • سه روش در این بخش: • روش NTP • الگوریتم برکلی • سنکرون سازی در شبکه های بی سیم
روش NTP • یک راه تنظیم ساعت ها: • ارتباط کلاینت ها با یک سرور که ساعت سرور دقیق است. • مشکل: تأخیر پیغام های ارتباطی روی زمان اثر می گذارد. • بنابراین باید تخمین مناسبی از این تأخیر داشته باشیم. • فرض: تأخیر انتشار از A به B با تأخیر از B به A برابر است. T2-T1 = T4-T3
روش NTP (2) • A می تواند آفست خود نسبت به Bرا به صورت زیر تخمین بزند: • البته زمان را نمی توان به عقب برگرداند • فقط ساعت را کندتر می کنیم (مثلاً تعداد میلی ثانیه هایی که به ازای هر وقفه اضافه می شود را کمتر کنیم). • پروتکل NTP: • تنظیم ساعت دوتا دوتا بین سرورها با یکدیگر انجام می شود. طبق رابطه بالا حساب می شود و مقدار تأخیر رفت وبرگشت: • هشت مقدار بافر می شوند و کمترین مقدار به عنوان بهترین تخمین تأخیر انتخاب می شود. (رابطه دیگری به جز بالا)
روش NTP (3) • در NTP: • سرور B نیز ساعت خودش را با A تنظیم می کند. • اگر ساعت B دقیقتر از A باشد، کار اشتباهی است! • راه حل: در NTP سرورها به لایه های (strata) مختلف دسته بندی می شوند. • سروری با ساعت مرجع می شود stratum-1 • وقتی A با B تماس می گیرد، فقط وقتی ساعتش را تغییر می دهد که سطح stratum آن از B بیشتر باشد. • پس از سنکرون سازی نیز سطح stratum سرور A یکی بیشتر از B می شود. • دقتی که با استفاده از NTP حاصل می شود 1-50 میلی ثانیه است.
الگوریتم برکلی • در روش NTP: سرور زمانی passive است • بقیه ماشین ها به صورت متناوب زمان را از او میپرسند. • در الگوریتم برکلی (در یونیکس برکلی پیاده سازی شد): • یک دیمون زمانی در سرور زمانی وجود دارد که به صورت فعال از ماشین ها می پرسد: الآن ساعت در آن ماشین چند است. • برحسب زمان های دریافتی و میانگین گیری به ماشین ها می گوید که ساعتشان را تندتر یا کندتر کنند. • مزیت الگوریتم برکلی: • نیازی نیست که سرور ساعتش را با ساعت جهانی تنظیم کند. • ساعت دیمون به صورت دستی توسط اپراتور ست می شود.
الگوریتم برکلی (2) • مراحل مختلف الگوریتم برکلی +25
سنکرون سازی در شبکه های بی سیم • در شبکه های بی سیم • انرژی گره ها محدود است و مسیریابی هزینه زیادی دارد. • روش Reference Broadcast Synchronization (RBS) • تلاش می کند ساعت گره ها را یکسان کند (مثل الگوریتم برکلی) نه اینکه همه را با ساعت جهانی تنظیم کند. • تلاش می کند فقط گیرنده ها را سنکرون کند و به فرستنده کاری ندارد (برخلاف روش های قبلی که دو به دو بودند). • فرستنده یک پیغام مرجع به گیرنده ها می فرستد. • با فرض نبودن مسیریابی چندگامه در شبکه های حسگر بی سیم، زمان انتشار پیغام به گره های دیگر ثابت فرض می شود. • زمان انتشار: شروع از ترک پیغام از واسط فرستنده • زمان ساخت پیغام و زمان دسترسی به شبکه در نظر گرفته نمی شود.
روش RBS • هر پیغام شامل مهر زمانی فرستنده است. • در شبکه های بی سیم، روش های دسترسی به رسانه تأخیر ایجاد می کنند که در RBS در نظر گرفته نمی شود. • فقط زمان دریافت در گیرنده مدنظر است.
روش RBS (2) • پیغام m به همه ارسال می شود. • گره p زمان Tp,m که پیغام را دریافت کرده را نگه می دارد. • این زمان از ساعت محلی ماشین گره p خوانده میشود. • دو گره p و q زمان های خود را با یکدیگر مبادله می کنند تا آفست نسبی بین خودشان را به دست آورند: • که در آن M تعداد کل پیغامهای مرجع ارسال شده بین p و q است. • به این ترتیب گره p زمان گره q را نسبت به زمان خودش می داند. • مشکل: ساعت ها بعد از مدتی دقتشان کم می شود و پیغام های آخر زمانشان از دقت کمتری نسبت به پیغام های اول برخوردار است. • به جای میانگین از رگرسیون خطی استفاده می شود: