توضیحات

توجه : این فایل به صورت فایل power point (پاور پوینت) ارائه میگردد

 پاورپوینت سیستم‌ عامل پیشرفته دارای 20 اسلاید می باشد و دارای تنظیمات کامل در Power Point می باشد و آماده پرینت یا چاپ است

فایل پاور پوینت پاورپوینت سیستم‌ عامل پیشرفته  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

این پروژه توسط مرکز مرکز پروژه و مقالات ارائه میگردد

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


بخشی از متن پاورپوینت سیستم‌ عامل پیشرفته :

پاورپوینت سیستم‌عامل پیشرفته

پاورپوینت سیستم‌عامل پیشرفته دارای 20 اسلاید می باشد که بخشی از متن و پاورپوینت سیستم‌ عامل پیشرفته
فهرست آن را در ادامه برای مشاهده قرار داده ایم و در صورت نیاز به داشتن کل این پاورپوینت می توانید آن را دریافت نموده و از آن استفاده نمایید

اسلاید :

فصل دوم: ارتباطات در سیستم‌های توزیع شده (ادامه)

  • پیاده‌سازی مدل Client-Server
  • خلاصه حالات در جدول شكل - ص تركیب كه همه آنها به دردبخور هستند.
  • هر شبكه یك Packet Size مشخصی (حداكثر چند هزار بیت) دارد و پیام‌های بزرگتر باید شكسته شوند.
  • با توجه به امكان گم شدن یا ناقص شدن پاكت‌ها یا رسیدن بدون ترتیب آنها شماره‌گذاری می‌شوند یعنی در هر پاكت علاوه بر شماره پیام یك شماره پاكت هم وجود دارد.
  • برای تأیید می‌توان هر پاكت را ack كرد كه تعداد Packet زیاد می‌شود ولی Recovery ساده است.
  • یا می‌توان كل پیام را ack كرد كه تعدا Packetها كم می‌شود ولی با یك پاكت خراب كل پیام باید تكرار شود.
  • انتخاب بسته به ضریب اطمینان شبكه دارد.
  • موضوع جالب دیگر پروتكل ارتباطی است در شكل - ص یك نمونه ارائه شده است. شكل - چند نمونه پروتكل
  • برای حالت بدون بافر سیستم می‌تواند با درخواست Server پروسس‌ها را ثبت نام كند تا پیغام‌های رسیده قبل از Receive را با TA برگرداند نه با AU

اسلاید :

.Remote Prcedure Call – احضار روال از راه دور

  • I/O به عنوان بحث مهم در سیستم‌های توزیع شده و ماندن عده‌ای به غلط در حل آن
  • احضار برنامه‌ای روی ماشین B توسط برنامه‌ای روی ماشین A (پس از احضار برنامه روی A معلق می‌شود تا خاتمه كار)
  • پارامتر‌ها می‌توانند ردوبدل شوند. هیچ I/O ‌ای از دید برنامه‌نویس موجود نیست.
  • مسئله نظیر وجود دو فضای آدرس متفاوت، مبادله پارامتر‌ها بین دو ماشین متفاوت، توقف ماشین‌ها مطرح است.
  • با وجود اینها RPC زمینه‌ساز خیلی از سیستم‌های عامل توزیع شده است.
  • عملیات ابتدایی RPC
  • توجه به یك احضار معمولی شكل - ص ، دو نوع انتقال پارامتر
    ( Value، Reference و Copy/Restor)
  • اینكه چه نوع ارسال پارامتر داشته باشیم به زبان بستگی دارد (C) و گاهی هم انتخابی است (Pascal) و گاهی انواع (Ada)
  • هدف از RPC این است كه آنرا از دید كاربر درست شبیه Call عادی انجام دهیم یعنی جزئیات مخفی باشد.

اسلاید :

  • مثال احضار Read ، افزودن روتین Read توسط Linker، گذاشتن پارامتر‌ها در Reg های مربوطه انجام System Call
  • پس Read یك واسط بین كاربر و سیستم عامل است كه از طریق Kernel انجام می‌پذیرد اجضار عادی نیست.
  • جزئیات Read از كاربر مخفی است و مثل یك Call عادی به كار گرفته می‌شود.
  • نحوه كار RPC هم مشابه Read است.
  • اگر یك RPC Read داشته باشیم برنامه كاربر به شكل عادی (شكل -) Client Stub را احضار می‌كند.
  • Cilent Stub پارامتر‌ها را در قالب یك پیام در می‌آورد و از Kerel می‌خواهد كه آنرا بفرستد به مقصد
  • Cilent Stub بعد از احضار Send و ارسال پیام Receive را احضار كرده و بلوكه می‌شود تا جواب بیاید.
  • شكل - ص Server Stub هر بیضی یك پروسس است و Stub زیر روالی است كه احضار می‌شود.
  • در Server‌ای كه باید پیغام را بگیرد Server Stub در Loop اصلی خود Receive را احضار كرده و منتظر است

اسلاید :

  • Server با دریافت پیام آنرا به Server Stub می فرستد تا آنرا باز كرده پارامترها را جدا كند.
  • Server Stub به طور معمول (ش - ) روتین موجود در Server را احضار می‌كند.
  • این روتین پس از انجام عمل، نتیجه را در پارامتر‌ها قرار می‌دهد و به Stub برمیگرداند
  • Server Stub پارامتر‌ها را در قالب پیام بسته‌بندی كرده و از طریق Send به Client می‌فرستد. با احضار Receiver منتظر پیام بعدی می‌شود.
  • Kernel مربوط به Client پیغام را می‌گیرد و می‌فهمد به كدام پروسس بدهد (آنرا به Process Stub می‌دهد) ولی Client چیزی از این نمی‌داند.
  • Client Stub پیغام را باز می‌كند و نتایج را به برنامه احضار كننده می‌فرستد و این برنامه فكر می‌كند كه احضار عادی انجام داده بود.
  • پس آنچه برای Client جذاب است انجام احضار عادی به جای Send و Receiver است
  • جزئیات مراحل در ص ولی Client و Server از آنها بی‌خبرند.

اسلاید :

  • مبادله پارامتر‌ها
  • گرچه مبادله پارامتر‌ها با استفاده از Stubها به ظاهر ساده است ولی نكاتی در عمل دارد .

(Parameter Marshalling)

  • جزئیات یك احضار در شكل - ص آمده است.
  • در صورتی كه دو ماشین Clinet و Server یكسان باشند این روند درست كار می‌كند.
  • اگر دو كامپیوتر متفاوت داشته باشیم در بستن و باز كردن پیام‌ها اشكال پیش می‌آید.
  • مثال مبادله بین Intel 486 كه Little Endian است و SPARK كه Big Endian است شكل - ص
  • راه حل ساده است باید یك قرارداد بین Client و Server در مورد نوع‌های اولیه داده گذاشته شود. شكل - ص
  • راه اول تعریف یك استاندارد انتقال مثلاً ones comp + ASCII و Litt Endian و الزام به رعایت در مبدأ و مقصد
  • بسیار خوب با تنها عیب كه ماشین‌های مشابه ممكن است دو تبدیل بیخودی انجام دهند.
  • راه دوم ارسال اطلاعات مربوط به نوع‌ها همراه پیام با این شرط كه هر دو بتوانند تبدیلات انجام دهند.

اسلاید :

  • روال‌های Stub از كجا می‌آیند؟ با داشتن اطلاعات Server كامپایلر می‌تواند دستورات لازم را اتوماتیك تولید كند. (بدون خط)
  • یك روال بسته‌بندی پیغام و یك روال باز كردن پیغام با توجه به نوع‌های داده و نوع ماشین، تولید می‌شود.
  • نحوه ارسال Pointerها ؟ راه اول منع آن به طور كامل و ارسال همه پارامتر‌ها به صورت مقدار یا C/R
  • این راه حل قبول نیست
  • راه دوم اینكه Client Stub محتویات را كپی كند بفرستد، Server Stub روی آن كار كند برگرداند و Cilent Stub دوباره محتویات پیام را در محل اصل كپی كند (شبیه‌سازی C/R)
  • دوباره كپی كردن وقت‌گیر است ولی چاره‌ای نیست
  • با دانستن Input، Output یا هر دو (نوع پارامتر) می‌توان كپی‌ها غیر لازم را انجام نداد.
  • برای اینكه در تعریف RPC باید نوع پارامتر‌ها و حداكثر طول آنها گفته شود.
  • برای ساختمان داده‌های پیچیده (درخت‌ها و گراف‌های دینامیك) این روش عملی نیست
  • راه حل پیشنهادی ارسال Pointer و سپس انجام عملیات روی اطلاعات در قالب مبادله پیام است كه گرچه كارآیی خوبی ندارد ولی از هیچ بهتر است.

اسلاید :

  • چگونه Client موفق می‌شود Server را پیدا كند (پیدا كردن Client Server, را)
  • راه حل ساده گذاشتن اطلاعات داخل برنامه Client به صورت Hardwiered كه اصلاً انعطاف ندارد. (نیاز به ترجمه دوباره همه برنامه‌ها در صورت كوچكترین تغییر)
  • راه حل بهتر Dynamic binding یا وابسته كردن به طور پویا
  • اول نیاز به تعریف فرمان برای Server داریم ش - ص برای Server ش - ص
  • یك Stateless server است یعنی نیازی به دانستن وضعیت قبلی (Open بودن فایل‌ها مثلاً) ندارد.
  • Stub generator در كامپایلر ازاین تعاریف فرمان برای تولید Stubها در زمان كامپایل استفاده می‌كند و نتیجه برای Link شدن در كد باینری در زمان Link در یك Library قرار می‌گیرد. (برای Client ، Server)
  • با شروع كار Server دستور Initialize ش - باعث ارسال یك پیغام به برنامه Binder برای ثبت نام (register) كردن Server می‌شود یعنی من هستم! (به این كار export كردن server گویند)
  • برای ثبت نام نیاز به اسم، handle, id, version و مجوزهای دسترسی می‌باشد.

اسلاید :

  • Handle وسیله شناسایی فیزیكی است مثل شماره IP یا SPI یا ….
  • حذف نام هم در زمان توقف Server انجام می‌شود. خلاصه در ش - ص رابط Binder
  • حال وقتی یك RPC انجام می‌شود مثلاً یك Read توسط Client
  • Client Stub عدم اتصال به Server مورد نیاز را متوجه می‌‌شود.
  • پیامی به Binder می‌فرستد برای Import كردن Version خاصی از واسط Server مربوطه
  • اگر چنین واسطی از هیچ Servery تا حالا export نشده با شماره version ها تطبیق ندارد Fail می‌كند.
  • اگر نه، Handle و شماره شناسایی را برمی‌گرداند تا توسط Client در جوف پیام گذاشته شود.
  • بعد از ارسال پیام، Server ها آن را چك كرده فقط Server مورد نظر پیام را برمی‌دارد با در نظر گرفتن Version
  • انعطاف‌پذیری زیادی در این روش وجود دارد.
  • داشتن چند Server ارائه دهنده خدمات مشابه
  • امكان تقسیم بار كاری به طور اتوماتیك روی Serverها
  • Poll كردن Serverها و حذف نام آنها كه خوابیده‌اند به طور اتوماتیك
  • رعایت كردن مجوزهای دسترسی به Serverهای خاص

اسلاید :

  • اشكالاتی هم دارد از جمله هزینه سر بار برای عملیات بالا و كند بودن در سیستم‌های بزرگ
  • در سیستم‌های توزیعی وسیع می‌توان چند Binder داشت كه با هر تغییر كلیه آنها باید آگاه شوند كه خود یك بار زیادی است.
  • عملكرد RPC هنگام بروز شكست (Failure)
  • با توجه به آنچه ذكر شد در صورت درست كار كردن هر دو ماشین عملكرد مورد نظر توسط RPC تامین می‌شود.
  • حال اگر اتفاقی افتاد چه می‌شود؟
  • پنج نوع شكست:
  • عدم امكان یافتن Server توسط Client (نیافتن Client، Server را)
  • گم شدن پیغام ارسالی از Client به Server
  • گم شدن پیغام ارسالی از Server به Client
  • سقوط Server پس از وصول پیام
  • سقوط Client پس از ارسال پیام
  • عدم یافتن Server به دلیل down بودن یا عدم تطبیق version هاست. Server جدید، Client قدیمی راه حل:؟

اسلاید :

  • مشابه ش - برگردان - توسط توابع در زمان خطا
  • در Unix متغیر error حاوی كد نوع خطاست كه یكی هم می‌تواند “Can’t locate server” باشد.
  • اگر برنامه‌ای مثل SUM باشد - می‌تواند یك جواب واقعی باشد (+(-)
  • راه حل دیگر چیزی شبیه ON ERROR است كه در بعضی زبان‌ها هست و با شرط Transparency مغایرت دارد در بعضی زبان‌ها هم نیست.
  • گم شدن پیام درخواست، استفاده از Timeout و تكرار پیام
  • اگر پیغام وقعاً گم شده، با تكرار آن مسئله حل می‌شود.
  • اگر با چند بار تكرار حل نشد باز می‌شود Can’t locate server
  • گم شدن پیام پاسخ، یك راه همان Timeout و تكرار پیام درخواست است.
  • بعضی درخواست‌ها تكرارشان بدون اشكال است مثل خواندن یك بلوك (Idempotent)
  • بعضی نیستند مثل انتقال پول بین دو حساب، زیر ممكن است كار انجام شود ولی پاسخ گم شود.
  • یك راه دادن شماره ردیف به پیغام‌هاست تا Server مواظب باشد همیشه آخرین پیام هر Client چه شماره‌ای بوده
  • راه دوم گذاشتن یك Flag و كردن آن برای پیغام‌های تكراری

مطالب فوق فقط متون اسلاید های ابتدایی پاورپوینت بوده اند . جهت دریافت کل ان ، لطفا ان را خریداری نمایید .

عنوان: سیستم‌عامل پیشرفته

فرمت:پاورپوینت

صفحات:20 اسلاید

برای دریافت اینجا کلیک کنید

سوالات و نظرات شما

برچسب ها

سایت پروژه word, دانلود پروژه word, سایت پروژه, پروژه دات کام,
Copyright © 2014 nacu.ir
 
Clicky