سیستم های توزیع شده

13 دی 1402 - خواندن 11 دقیقه - 480 بازدید

سیستم های توزیع شده

1- مقدمه:

سیستم عامل توزیع شده در یک محیط شبکه ای اجراء می شود. در این سیستم قسمتهای مختلف برنامه کاربر بدون آنکه خود او متوجه شود می توانند همزمان در چند کامپیوتر مجزا اجراء شده و سپس نتایج نهایی به کامپیوتر اصلی کاربر بر گردند. به علت تاخیر های انتقال در شبکه و نویزهای احتمالی در خطوط انتقالی قابلیت اعتماد اجرای یک برنامه دریک سیستم تنها، بیشتر از قابلیت اجرای آن دریک سیستم توزیع شده است. همچنین درسیستم توزیع شده اگر یکی از کامپیوترهایی که وظیفه اصلی برنامه جاری را برعهده دارد خراب شود کل عمل سیستم مختل خواهد شد. از طرف دیگر اگر اطلاعاتی همزمان در چند کامپیوتر به صورت یکسان ذخیره گردد و یکی از کامپیوترها خراب شود, داده ها را می توان از کامپیوترهای دیگر بازیابی کرد از این نظر امنیت افزایش می یابد. به سیستم های توزیع شده گاهی اوقات سیستم های Loosely Coupledیا ارتباط ضعیف نیز می گویند؛ چرا که هر پردازنده کلاک و حافظه مستقلی دارد. پردازنده ها از طریق خطوط مخابراتی مختلفی مثل گذرگاه های سریع یا خطوط تلفن ارتباط دارند. سیستم های توزیع شده مبتنی بر وب برای برنامه های کاربردی تحت شبکه ساخته شده اند و با استفاده از مفهوم یک سند وب برای تبادل اطلاعات و اغلب ، ارتباط در محیط های اداری و سایر تنظیمات در اختیار عموم قرار داده می­شوند. بنابراین گسترش این مفهوم به اسناد الکترونیکی برای اکثر مردم کاملا منطقی است. سیستم های توزیع شده می توانند اشتراک منابع، باز بودن، همزمانی، توسعه پذیری، تحمل عیب و شفافیت را پشتیبانی کنند. سیستم های مشتری-کارگزار سیستم هایی اند که در آنها سیستم به صورت مجموعه ای از سرویس های مدل سازی می شود که کارگزاران در اختیار مشتریان قرار می دهند. در معماری توزیع شده، تمایزی بین مشتریان و کارگزاران وجود ندارد، اشیا سرویس های کلی را ارائه می دهند که اشیا دیگر آنها را فراخوانی می کنند. استاندارد های CORBA مجموعه ای از استاندارد ها برای میان افزارهایی هستند که از معماری های شیئ توزیع شده پشتیبانی می کنند.

2- مفهوم و ویژگی­های سیستم عامل توزیع شده :

تعریف­های گوناگونی از سیستم­های توزیع شده در متون آمده است که هیچ­کدام از آن­ها کامل نیستند و هیچ کدام با دیگری سازگاری ندارد اما برای اهداف ما بیان تعریف زیر کافی است:

سیستم های توزیع شده کلکسیونی از کامپیوتر های مستقل است که از دیدگاه کاربران مثل یک سیستم منسجم عمل می­کند. این تعریف چندین جنبه مهم دارد اولین جنبه این است که سیستم توزیع شده شامل قطعاتی است که خود مختار هستند. جنبه دوم این است که کاربران برنامه یا انسان­ها فکر می­کنند که آنها تنها با یک سیستم سروکار دارند. معنایش این است که قطعات خود مختار باید همکاری داشته باشند. چگونگی انجام این همکاری قلب توسعه سیستم­های توزیع شده است توجه کنید که هیچ فرضیه­ای درباره نوع کامپیوترها وجود ندارد در اصل حتی فقط در یک سیستم آنها می توانند از کامپیوتر های بزرگ با کارایی بالا تا گره هی کوچکی در شبکه های سنسور باشند به همین ترتیب هیچ فرضیه ای درباره روش اتصال کامپیوتر ها وجود ندارد. اما به جای پرداختن بیشتر به تعریف ها بهتر است به ویژگیهای مهم سیستم های توزیع شده پرداخته شود.

یک ویژگی مهم این است که تفاوت های بین کامپیوتر ها و روش اتصال بین اغلب از دید کاربران پنهان است همین موضوع برای سازمان داخلی سیستم توزیع شده صادق است.

ویژگی مهم دیگر این است که کاربران و کاربردها می توانند به طور یک نواخت و سازگار با سیستم توزیع شده تعامل داشته باشند و مهم نیست که این تعامل در کجا و در چه زمانی انجام می گیرد .در اصل بسط و توسعه سیستم های توزیع شده باید آسان باشد . این ویژگی نتیجه مستقیم وجود کامپیوتر های مستقل و مخفی بودن چگونگی اتصال آنها و تشکیل یک سیستم کل است.کاربران و کاربرد ها به این موضوع کار ندارند که بخشهایی جایگزین یا تعمیر شدند یا بخشهایی جدیدی اظافه شدند تا به کاربران و کاربردهای دیگری سرویس دهند.

به منظور پشتیبانی از کامپیوتر ها و شبکه های غیر یکسان و ارائه دید گاه تک سیستمی سیستم های توزیع شده معمولا به وسیله لایه ای از نرم افزار سازماندهی می شوند یعنی به طور منطقی بین لایه بالاتر که شامل کاربران و کاربردها است و لایه زیرین که شامل سیستم عامل و امکانات ارتباطی پایه است به سیستم های که در میان این دولایه هستند را میان لایه با میان افزار می نامند. اهداف سیستم های توزیع شده فقط به دلیل اینکه می توان سیستم های توزیع شده را ساخت الزاما به معنای خوب بودن این ایده نیست . با فناوری موجود می توان چهار درایو فلاپی روی یک کامپیوتر شخصی قرار داد فقط به دلیل اینکه می توان چنین کاری را انجام داد اقدام به این کار منطقی نیست.

در سیستم عامل توزیع شده که در یک محیط شبکه ای اجراء می شود، قسمتهای مختلف برنامه کاربر می توانند همزمان در چند کامپیوتر مجزا اجراء شده و سپس نتایج نهایی به کامپیوتر اصلی کاربر بر گردند.

مزیت مهم سیستم های توزیع شده سرعت بالای اجرای برنامه ها و همچنین توانایی قرار گرفتن بانک­های اطلاعاتی روی یکسری کامپیوترهای شبکه شده به علت توزیع شدن اطلاعات می باشد. در این سیستم یک برنامه همزمان می تواند از چندین کامپیوتر برای اجراء شدنش استفاده کند. حال که کاربرد کلی این سیستم را دریافتیم قصد داریم به بیان این مسئله بپردازیم که چگونه و چطور این سیستم کارایی دارد و برای اجرا و پیاده سازی آن، چه قوانینی باید رعایت شوند.

3- مبانی سیستم های توزیع شده:

از اواسط دهه هشتاد دو پیشرفت در فناوری وضعیت ها را تغیر داد، ابتدا ماشین ها 8 بیتی بود ولی در مدت زمان کوتاهی پردازنده های 16 32 و 64 بیتی متداول شدند، نکته قابل توجه این گرو ها توان بالا و قیمت مناسب آن نسبت به قبل تر بود. میزان بهبودی که در فناوری کامپیوتر در نیم قرن گذشته حاصل شد به انداره تمام صنایع دیگر بوده است.

از ماشین های که قیمت آنها 100 میلیون تومان بود و در هر ثانیه یک دستورالعمل را اجرا می کرد، به ماشین های به قیمت یک میلیون تومان رسیدیم که قادرهستند یک بیلیون دستور العمل رادر هر ثانیه اجرا کنند به طوری که نسبت قیمت به کارایی برابر با 10 به توان 13 است. اگر اتومبیل ها در این مدت بهبود پیدا می کردند بهترین اتومبیل به قیمت یک ریال عرضه می شد و به ازای هر لیتر بنزین بیلیون کیلومتر طی می شد. توسعه دوم اختراع شبکه ها کامپیوتری با سرعت بالا بود شبکه های محلی اجازه می دهد صدها ماشین در داخل ساختمان طوری به هم متصل شوند که میزان کمی اطلاعات می توانند در مدت چند میکرو ثانیه بین این ماشین ها مبادله شوند.

حجم زیادی از داده های می توانند با نرخ 100 میلیون تا 10 بیلیون بیت بر ثانیه بین این ماشینها مبادله شود شبکه های گسترده اجازه می دهد میلیون ها ماشین در سراسر دنیا با سرعت 64 کیلو بیت بر ثانیه تا گیگا بیت در ثانیه به هم متصل شوند. نتیجه این فناوری ها این است که اکنون به راحتی میتوان صدها سیستم کامپیوتر را باشبکه پر سرعت به هم متصل کرد آنها را معمولا شبکه های کامپیوتری یا سیستم های توزیع شده می نامند که در مقابل سیستم های متمرکزقرار دارند. سیستم های متمرکز شامل یک کامپیوتر، تجهیزات جانبی آن و شاید چند پایانه راه دور باشد.

4- اصول سیستم­های توزیع شده:

در بحث سیستم های توزیع شده یکی از مباحثی که اهمیت دارد فرآیندها و نحوه عمل آن ها می­باشد. در فرآیندها موضوع مهمی که مطرح می شود چندنخی است که چند نخی در سیستم های توزیع شده مزایای زیادی دارد. یکی از کاربردهای چندنخی در رابطه مشتری و خدمتگزار است، به همین دلیل در اینجا مشتری و خدمتگزار کامل مرور می شود. در مورد فرآیندها برای اجرا روی سیستم های ناهمگن در یک محیط توزیع شده مجازی سازی مطرح می شود و انواع مجازی سازی بیان می شود. یکی دیگر از مهمترین ویژگی های فرآیندها در یک محیط توزیع شده امکان مهاجرت از یک ماشین به ماشین دیگر است که مزایای زیادی مانند توزیع بار دارد.

تعدادی پردازنده در حال اجرا توسط سیستم عامل ایجاد شده است که روی هر کدام از این پردازنده­ها یک برنامه در حال اجراست که این برنامه در حال اجرا را فرآیند می گویند. در مورد فرآیندها از نقطه نظر سیستم عامل، مسائلی مانند مدیریت و زمانبندی فرآیندها مهم و مورد بحث است، اما از نقطه نظر سیستم های توزیعی مسائل دیگری مانند نخ بندی، مجازی سازی، مهاجرت کد مطرح می شود. برای فرآیندها جدولی به اسم جدول فرآیند داریم که برای ردگیری این پردازنده های مجازی از آن استفاده کنیم، جدول فرآیند شامل مقادیر ثبات های پردازنده ها، اطلاعات حسابرسی و اولویت ها، فایل های باز و... می باشد.
سیستم عامل باید مراقب باشد تا فرآیندهای مستقل تاثیری بر هم نداشته باشند که منابع سخت افزاری نیاز دارند، این عمل را شفافیت همروندی می گویند و هزینه زیادی دارد، مثلا هنگام ایجاد فرآیند باید تخصیص منابع صورت گیرد، سوئیچ کردن بین فرآیندهای زمان بر نیاز به واحدهای (MMU) و نامعتبرسازی خط هایی مانند TLBدارد. موارد مهمی که در مورد فرآیندها در سیستم های توزیع شده در اینجا مطرح شده است چندنخی، مجازی سازی، مشتری، خدمتگزار و مهاجرت کد است که در اینجا در مورد هرکدام شرح داده است.

.

.

.

.

.


15- نتیجه گیری:

فرآیندها از مباحث مهم در سیستم های توزیع شده بودند. از جمله مسائلی که در مورد فرآیندها در یک سیستم توزیع شده حائز اهمیت بود چند نخی بود که از اهمیت ناشی از آن به خدمتگزارهای چند نخی و مشتری های چندنخی رسیدیم. اجرای همزمان چند پزدازنده در یک سیستم نیاز به مجازی سازی را می طلبد. انواع مجازی سازی را با توجه به نوع معماری و... داریم که شرح داده شد. در مورد مشتری به عنوان یک واسط عمل می کند که از جمله آن سیستم پنجره X عنوان شد. در خوشه خدمتگزارها برای حل مشکلاتی مانند نقطه دسترسی سراغ خوشه خدمتگزار توزیعی رفته شد که 3 طبقه داشت. مهاجرت یکی از انعطاف پذیری های سیستم های توزیعی است که در آن یک فرآیند در حال اجرا می توانست به ماشین دیگری حرکت کند. مهاجرت با توجه به ملاک هایی به چند دسته تقسیم شدند و در مورد نحوه مهاجرت شان با توجه به این ملاک ها تصمیم گیری شود.

سیستم های توزیع شده