Advanced Operating System - ????? ??? - ?? by 9tO63Vo

VIEWS: 148 PAGES: 46

									      ‫سيستمهای چندپردازنده ای‬

‫سیستمهاي عامل پیشرفته‬
                 ‫انواع سیستمهای چندپردازنده ای(چند ‪ cpu‬داریم)‬
                                                                           ‫از دیدگاه سخت افزاری‬
                                       ‫همگن(متجانس) (همه ‪ cpu‬ها از یک نوع باشند)‬
                                                                 ‫ناهمگن(نامتجانس)‬
                                ‫ایا پردازنده های روی مادربورد سیستم چند پردازنده محسوب میشود؟‬
                                   ‫خیر منظور پردازنده ای است که چند منظوره باشد نه تک منظوره‬
                                                    ‫از دیدگاه نرم افزاری (از دیدگاه سیستم عامل)‬
‫متقارن: در این سیستمها، تمامی پردازنده ها دارای نسخه یکسانی از سیستم عامل هستند و در هنگام نیاز‬
                                                                   ‫با هم ارتباط برقرار می کنند.‬
‫نامتقارن: در این سیستمها، یا هر پردازنده سیستم عامل خاص خودش را دارد (با هم متفاوتند) و یا اینکه‬
               ‫یک سیستم عامل به بخشهای ی شکسته شده و هر بخش روی یک پردازنده اجرا می شود.‬




                                       ‫سیستم هاي عامل پیشرفته‬                                      ‫2‬
                                          ‫مزایای یک سیستم چندپردازنده ای‬
                                                       ‫افزایش سرعت ( به علت اجرای موازی برنامه ها)‬

                                                                           ‫افزایش تحمل پذیری خطا‬

‫(درصورت خرابی يک پردازنده، ديگر پردازنده ها می توانند اين کار را انجام دهند اما با کاراي ی پايين تر)‬

‫کاهش نسبت هزینه به کارای ی (به جای تهيه چند کامپيوترکامل میتوان از چندپردازنده وتنها يک‬
                                                       ‫‪ case‬و يک ‪ power‬استفاده کرد.)‬

                                                ‫کاربردها (شطرنج، محاسبات مربوط به هواشناسی ...)‬




                                       ‫سیستم هاي عامل پیشرفته‬                                          ‫3‬
                       ‫مقايسه سيستم های چندکامپيوتری(شبکه ای) با چندپردازنده ای‬

                      ‫هردو سيستم به روش چند داده – چند دستور )‪ (MIMD‬عمل می کنند.‬

‫ارتباط ميان فرايندها در سيستمهای چندپردازنده ای با استفاده از حافظه مشترک ‪(Shared‬‬
‫)‪ Memory‬و در سيستمهای چندکامپيوتری از طريق تبادل پيغام )‪(Message Passing‬‬

                                                                     ‫صورت می گيرد.‬

‫سهولت قابليت گسترش )‪ :(Scalability‬در سيستمهای چند کامپيوتری راحت تر از چندپردازنده ای‬
                                                                     ‫ها انجام می شود‬

                         ‫‪ Increamental‬با قدرت بیشتری است(یکی یکی افزایش دادن)‬
‫روی سيستمهای چندپردازنده ای يک نوع سيستم عامل وجود دارد اما در سيستمهای چند کامپيوتری می‬
                            ‫تواند بر روی هر کامپيوتر سيستم عامل متفاوتی وجود داشته باشد.‬

                                   ‫سیستم هاي عامل پیشرفته‬                                  ‫4‬
                           ‫مقايسه سيستم های چندکامپيوتری با چندپردازنده ای‬
                                                                        ‫معیار کارای ی/هزینه‬

‫سرعت درسيستمهای چندپردازنده ای نسبت به سيستمهای چندکامپيوتری بيشتر است. چند‬
‫کامپيوتریها از نظر سرعت مانند چند پردازنده ای ها عمل می کنند به شرطی که شبکه ارتباطي انها‬
                                                                              ‫سريع باشد.‬




                                     ‫سیستم هاي عامل پیشرفته‬                                   ‫5‬
          ‫معماری یک سیستم چندکامپيوتری‬

                              ‫…‬    ‫3‬


                       ‫شبکه‬

‫پروسسور‬            ‫حافظه‬
                ‫)‪(LM‬محلی‬          ‫‪I/O‬‬




               ‫انتخابگر ‪Bus‬‬


           ‫نماي ی از يک ماژول‬
     ‫سیستم هاي عامل پیشرفته‬              ‫6‬
            ‫معماری یک سیستم چندپردازنده ای در یک بورد قرار میگیرند‬
            ‫‪Interrupt Signal‬‬
        ‫‪Interconnection network‬‬

                                                                                              ‫1‪d‬‬
                                                                    ‫‪I/O‬‬                       ‫2‪d‬‬
       ‫0‪P‬‬          ‫1‪P‬‬               ‫‪Pn‬‬                           ‫‪Processor‬‬




                                                                                               ‫……‬
                                                              ‫‪Interconnection‬‬
 ‫0‪LM‬‬         ‫1‪LM‬‬            ‫‪LM n‬‬                                  ‫‪Network‬‬
‫‪Local Memories‬‬                                                                                ‫)‪d(k‬‬
                            ‫. . .‬

               ‫‪Processor Memory‬‬                 ‫چون چند پردازنده نمی توانند همزمان در يک حافظه مشترک بنويسند‬
            ‫‪Interconnection Network‬‬              ‫برای منتظر نماندن هر پردازنده بايد چندين حافظه مشترک وجود‬
                                                                      ‫داشته باشد. معموال گذرگاه مشترک است.‬
  ‫0‪SM‬‬        ‫1‪SM‬‬        ‫. . .‬       ‫‪SMm‬‬

        ‫‪Shared Memories‬‬
                                     ‫سیستم هاي عامل پیشرفته‬                                                    ‫7‬
                          ‫مالحظات طراحی سیستم عامل چند پردازنده ای‬
                                       ‫همزمانی فرایندها: توسط هر یک از پردازنده ها انجام میشود.‬

                                                             ‫(در تک ‪ cpu‬همزمانی اجرا نداشتیم)‬

‫زمانبندی: توسط هر یک از پردازنده ها انجام شود.(زمانبندی:چگونه به ‪ cpu‬یک پروسس را بدهیم)‬

                           ‫همگام سازی: ابزاری است برای تنظیم انحصار متقابل و تنظیم حادثه ها.‬

                                            ‫(از بخش بحرانی همزمان و همروند نمیتوان استفاده کرد)‬

 ‫مدیریت حافظه: باید سخت افزار مناسب را دارا باشند.( در ان واحد دو یا چند نفر نمیتوانند بنویسند)‬

                                 ‫قابلیت اطمینان و تحمل خرابی: در برخورد با خرابی باید اقدام کند.‬




                                    ‫سیستم هاي عامل پیشرفته‬                                         ‫8‬
                              ‫سازماندهی سیستم عاملهای چند پردازنده ای‬
                                                 ‫ایا همه باید سیستم عامل را داشته باشندو...‬

‫ازجمله وظایف سیستم عامل سرویس دهی است، در واقع سرویس های سیستم عامل چند پردازنده ای بین‬
                       ‫چند پردازنده توزیع می شوند و یا هر پردازنده یک یا چندین سرویس دارد.‬

                                                                ‫1- روش ‪Master/Slave‬‬

                                   ‫2- روش ‪( Separate Supervisor‬سرپرست مجزا)‬

                              ‫3- روش ‪( Floating Supervisor‬روش سرپرست شناور)‬




                                     ‫سیستم هاي عامل پیشرفته‬                                   ‫9‬
                                                         ‫روش ‪Master/Slave‬‬
‫در اين روش هسته بر روی يک پردازنده قرار میگيرد و اين پردازنده فرايندهای موجود را بر روی‬

                                                             ‫پردازندههای ديگر توزيع میکند.‬

                                       ‫تمام مدیریت زمانبندی و.. روی ‪ master‬انجام میشود‬

        ‫فرايندها بصورت موازی اجرا میشود در نتیجه سرعت اجرا باال رفته و زمان اجرا کاهش مییابد.‬

‫0‪P‬‬            ‫هسته ‪OS‬‬                 ‫سيستمهاي ی مانند ‪ Windows‬و ‪ Unix‬از اين دسته اند.‬
‫1‪P‬‬             ‫فرايند1‬

‫2‪P‬‬             ‫فرايند2‬
 ‫...‬




‫‪Pn‬‬              ‫فرايند‪n‬‬

                                    ‫سیستم هاي عامل پیشرفته‬                                      ‫01‬
                                                 ‫ویژگیهای روش ‪Master/Slave‬‬
                                  ‫پیاده سازی و مدیریت ان بسیار ساده است.(هر جا متمرکز است مدیریت اسانتراست)‬

‫عیب:1)قابليت اطمينان پایین: با از کارافتادن يک پردازنده (پردازنده مربوط به هسته) فرايندهای اجراي ی ديگر از کار می‬

                                                                               ‫افتند.(یک نقطه خرابی داریم)‬

‫2)وجود گلوگاه )‪ :(Bottleneck‬پديده ای است که دران چند پردازنده برای اجرای وظايف خود میخواهند از يک منبع‬

‫(پردازنده) استفاده کنند. ‪System call‬ها روی هسته است. با فراخوانی برنامه متوقف میشود تا هسته اجرا‬

                                                                                                      ‫شود.‬

                 ‫3) کاهش سرعت: برای فرایندهای ی که نیاز به ‪ System Call‬دارند هسته همیشه در حال اجرا است.‬




                                             ‫سیستم هاي عامل پیشرفته‬                                                 ‫11‬
                                                                                 ‫روش سرپرست مجزا‬

                                        ‫در اين حالت هسته سيستم عامل برروی تمام پردازنده ها به صورت جداگانه قرار‬

‫می گيرد اما تنها يک ‪( Shell‬پوسته ارتباط با کاربر) وجود دارد که فرایندهای ديگر هم برای ارتباط با کاربر از همين پوسته‬

        ‫استفاده می کنند. هسته روی تمام پردازنده ها قرار میگیرد و روی هر پردازنده چندین فرایند میتواند اجرا شود.‬




                 ‫هسته 0‪P‬‬        ‫‪Shell‬‬



 ‫هسته ‪Pn‬‬                             ‫هسته 2‪P‬‬
           ‫..…‬        ‫هسته 1‪P‬‬


                                             ‫سیستم هاي عامل پیشرفته‬                                                   ‫21‬
                                                                  ‫ویژگی های روش سرپرست مجزا‬
                                                            ‫عیب ها:اين روش مشکالت روش ‪ Master/Slave‬را ندارد.‬

                                                         ‫تکرار هسته سيستم عامل فضای زيادی از حافظه را اشغال می کند.‬

                                                                                                 ‫مدیریت پیچیدهتری دارد.‬

                                            ‫‪Shell‬با همه ارتباط دارد.دستورات کاربر را میگیرد به دیگران منتقل میکند.‬

‫اگر پوسته یا پردازنده دارای پوسته از کار بيفتد امکان ارتباط فرایندها با کاربر قطع می شود هرچند که پردازنده ها می توانند به‬

                                                                                       ‫کار پردازشی خود ادامه دهند.‬

‫مزیت:افزایش سرعت: برای فرایندهای ی که نیاز به ‪ System Call‬دارند هر زمان که نیاز باشد همزمانی ایجاد می شود زیرا‬

                                                                ‫کدهای سیستم عامل بر روی هر پردازنده قرار می گیرد.‬



                                                 ‫سیستم هاي عامل پیشرفته‬                                                      ‫31‬
                                                                           ‫روش سرپرست شناور‬
                                                                              ‫این روش ترکیبی از دو روش قبل است.‬

                                                           ‫ريزهسته سيستم عامل برروی تمام پردازنده ها قرار می گيرد.‬


‫هر يک از سرویسهای سيستم عامل بر روی يکی از پردازنده ها قرار می گيرد. (‪ shell‬یکی از سرویس های سیستم عامل است.‬

                                                             ‫میتوان چند تا داشت ولی در ان واحد یکی استفاده شود)‬
         ‫1‪P‬‬        ‫‪Print Server‬‬


         ‫2‪P‬‬         ‫‪File Server‬‬
         ‫…‬




         ‫‪Pn Memory Server‬‬


                                        ‫سیستم هاي عامل پیشرفته‬                                                       ‫41‬
                                     ‫ویژگی های روش سرپرست شناور‬
‫نسبت به روش ‪ Master/Slave‬جای بيشتری را اشغال می کند چون عالوه بر تمام سرویسهای‬
                                                ‫سیستم عامل هر پردازنده ريز هسته دارد‬

     ‫نسبت به روش سرپرست مجزا حجم کمتری اشغال می کند چون سرویسها توزيع شده است.‬

                           ‫تا حدودی از اجرای همزمان و موازی فرایندها استفاده می شود.‬
                                        ‫ا‬
       ‫عیب:ممکن است تا چند کار به مثال ‪ memory server‬احتیاج داشته باشند‬




                             ‫سیستم هاي عامل پیشرفته‬                                    ‫51‬
                    ‫وظایف سیستم عامل در سیستم چندپردازندهای‬
                                                                ‫1- مدیریت فرایند (زمانبندی، بن بست، .... )‬
‫تفاوت چندپردازندهای با تکپردازندهای در تعداد منابع پردازشی است و در نتیجه زمانبندیها نیز متفاوت‬
‫است چون در سیستمهای چندپردازندهای عالوه بر چگونگی تخصیص پردازنده ها به فرایندها،‬
                                   ‫تخصیص کدامین پردازنده به کدامین فرایند نیز مورد نظر است.‬
                                                                                  ‫2- مدیریت ‪( I/O‬چاپگر)‬
                                                                         ‫3- مدیریت حافظه اولیه (‪)RAM‬‬

              ‫بسیارشبیه سیستم عامل تکپردازندهای‬
                                                                            ‫4- مدیریت حافظه ثانویه (فایل)‬
                                                                                             ‫5- شبکهبندی‬
                                                                       ‫ویندوز ‪xp‬تا 4 پردازنده را میشناسد‬


                                       ‫سیستم هاي عامل پیشرفته‬                                                ‫61‬
                               ‫زمان بندی )‪cpu(Scheduling‬‬
‫هدف از زمان بندی،تخصیص پردازنده ها به فرایندها در طول زمان است به گونه ای که هدفهای‬
                                                                         ‫سیستم براورده شود.‬

                      ‫(هدف: ‪ throghput‬باال برود، متوسط زمان پاسخ کم بشود، ...)‬

                                                                               ‫الگوریتم زمان بندی‬
                   ‫تصمیم گیری برای چگونگی اختصاص فرایندها به پردازنده ها است نه اجرای فرایندها‬

                                                                   ‫زمانبندی با اجرا متفاوت است‬




                                   ‫سیستم هاي عامل پیشرفته‬                                           ‫71‬
                                                                          ‫انواع زمان بندی‬
                                   ‫1- انحصاری، غیر قابل پس گرفتن )‪(Non-preemptive‬‬

‫هنگامی که پردازنده در اختیار یک فرایند قرار گرفت، انقدر در اختیارش باقی می ماند تا فرایند به اتمام‬
                                                                            ‫برسد یا مسدود شود‬

                                                                 ‫(مثل:عمل ‪I/O‬و ‪) send,recieve‬‬

                                            ‫2- غیر انحصاری، قابل پس گرفتن )‪(Preemptive‬‬

‫هنگامی که زمانبند سیستم عامل پردازنده را به یک فرایند واگذار کرد، می تواند بر طبق الگوریتم زمان‬
                                     ‫بندی بر خالف میل فرایند، پردازنده را از فرایند باز پس گیرد.‬



                                        ‫سیستم هاي عامل پیشرفته‬                                       ‫81‬
                                                                 ‫انواع زمان بندی 2‬
                                                        ‫1- زمان بندی قطعی ‪Deterministic‬‬

‫هر بار که الگوریتم زمانبندی برای تعداد فرایند یا تعداد کار ثابت اجرا می شود یک جواب حاصل می‬
                                                                        ‫شود. مانند ‪SJF‬‬

                                         ‫2- زمان بندی غیر قطعی ‪Non deterministic‬‬

                     ‫در هر بار اجرای الگوریتم زمانبندی ممکن است جواب های متفاوتی بدست اید.‬

                                                                     ‫مانند الگوریتمهای ژنتیک‬




                                     ‫سیستم هاي عامل پیشرفته‬                                    ‫91‬
                                                                              ‫انواع زمان بندی 3‬
                                                                                ‫1- زمان بندی ايستا )‪(Static‬‬
‫به گونه ای که زمان ورود کارها به سيستم و مدت زمان انجام انها قبل از شروع برای الگوریتم زمانبندی مشخص است و اگر‬
‫کار جدیدی وارد سیستم شود تا پایان اجرای کلیه کارهای قبلی در زمانبندی دخالت داده نمیشود.(مثل ‪)sjf‬کاربرد‬
                                                                     ‫این زمانبندی در ‪ web server‬است‬

                                                                             ‫2- زمان بندی پويا )‪(Dynamic‬‬

‫ممکن است مشخصات کليدی کارها از قبيل مدت زمان انجام انها در زمان اجرای برنامه تغییر یابد. اگر کار جدیدی وارد‬
                            ‫سیستم شود در هنگام اجرای کارهای قبلی ممکن است در زمانبندی دخالت داده شود.‬




                                            ‫سیستم هاي عامل پیشرفته‬                                               ‫02‬
‫الگوریتمهای زمانبندی پویا در سیستم چند پردازنده ای‬


                                        ‫1- اشتراک بار ‪Load Sharing‬‬

                                                        ‫2- زمانبندی گروهی‬

                                              ‫3- اختصاص پردازنده به فرایند‬

                                     ‫4- جداسازی سیاست از مکانیزم زمانبندی‬




            ‫سیستم هاي عامل پیشرفته‬                                           ‫12‬
                                                               ‫الگوریتم زمانبندی اشتراک بار‬
                                            ‫فرایند ها وارد صف مشترک مابین پردازنده ها (اشتراک بار) می شوند.‬

                                                     ‫پردازنده های بیکار انها را از صف برمیدارند و اجرا میکنند.‬

‫پس از اتمام زمان در نظر گرفته شده برای هر يک از فرایند (زمانبندی قابل پس گرفتن) یا اتمام فرایند یا انجام هر‬

                                                         ‫عملی که باعث مسدود شدن شود مثل عمل ‪I/O‬‬

                                            ‫(زمانبندی غیر قابل پس گرفتن) فرایند دوباره به انتهای صف میرود.‬

    ‫پردازنده ای که از انجام ان فارغ شده فرایند بعدی موجود در صف را برمیدارد و انجام میدهد وبه همين ترتيب...‬




                                           ‫سیستم هاي عامل پیشرفته‬                                                ‫22‬
 ‫0‪P‬‬                                           ‫ویژگی های الگوریتم زمانبندی اشتراک بار‬
                                                                   ‫0‪P‬‬
 ‫1‪P‬‬
  ‫.‬                                                                ‫1‪P‬‬
                                                                    ‫.‬
  ‫.‬                                   ‫صف فرایندها‬                   ‫.‬
  ‫.‬                                 ‫هميشه پردازنده ها بطور متوازن در حال کارند و معموال پردازنده بيکار وجود ندارد.‬
                                                                   ‫‪P.n‬‬
 ‫‪Pn‬‬                                                                        ‫بهره وری یا مشغول بودن‪ cpu‬باال میرود‬
‫صف مشترک را هرگونه می توان پياده سازی نمود در نتیجه گرسنگی نداریم و به روشهای مختلف زمان بندی‬
                                                                                             ‫کرد.(‪),..fifo,RR‬‬
                                                                                  ‫مدیریت صف مشترک ساده است.‬
‫‪ cache‬در نظرگرفته شده برای هر يک از پردازنده ها جهت ذخيره اطالعات یا کدهای فرایندها قبلی اجرا شده روی‬
                                                                            ‫پردازنده ممکن است ارزشی نداشته باشد.‬
                                                  ‫کش: حافظه سریعی است که بین ‪cpu‬و حافظه کند قرار میگیره‬
                                                   ‫صف مشترک بخش بحرانی میشود و سبب ایجاد گلوگاه می شود.‬




                                              ‫سیستم هاي عامل پیشرفته‬                                                 ‫32‬
                                                              ‫الگوریتم زمانبندی گروهی‬
‫گروهی از فرایندها که با هم ارتباط بیشتری دارند یا يک فرایند به همراه نخهای ان با یکدیگر زمانبندی‬

             ‫شده و همزمان به گروهی از پردازنده ها تخصیص داده شده یا از گروه گرفته میشود.‬

‫چون به صورت موازی اجرا می شود باعث افزایش سرعت می شود و کمتر مسدود می شود بخاطر‬

                                                                ‫ارتباطاتی که با یکدیگر دارند.‬

      ‫برای اینکه ارتباط بین فرایندها را تشخیص داد میشود یک ‪ history‬از ارتباطشان تهیه کرد‬




                                     ‫سیستم هاي عامل پیشرفته‬                                        ‫42‬
                               ‫الگوریتم زمانبندی اختصاص پردازنده به فرایند‬
‫گروهی از فرایندها که با هم ارتباط بیشتری دارند یا يک فرایند به همراه نخهای ان همزمان به گروهی از‬
                                                         ‫پردازنده ها تخصیص داده می شوند.‬
‫هیچگاه فرایند از پردازنده پس گرفته نمیشود مگر اینکه فرایند تمام شود.(‪ i/o‬هم رخ دهد پس گرفته‬
                                                                              ‫نمیشود)‬
                                               ‫سرعت اجرا باال میرود چون تعویض فرایند وجود ندارد.‬
                          ‫عیب بزرگ این روش بی کار بودن پردازنده و کاهش بهره وری پردازنده است.‬




                                       ‫سیستم هاي عامل پیشرفته‬                                      ‫52‬
                                        ‫جداسازی سیاست از مکانیزم زمانبندی‬
                                                       ‫یک ایده کلی است و ربطی به زمانبندی ندارد.‬
                                       ‫بايد ميان سياست زمان بندی و مکانيزم ان تفاوت قائل شد.‬
                                                        ‫سیاست نسبت به مکانیزم سطح باالتر است.‬

                                                             ‫مکانیزم طریقه پیاده سازی سیاست است.‬
‫مثال سياست زمان بندی مشخص می کند که زمان بندی به صورت پويا انجام شود يا ايستا، اما مکانيزم‬
       ‫ان مشخص می کند که برای پياده سازی سياست درنظرگرفته شده از چه روشی استفاده نمود.‬
                                    ‫سیاست ویندوز اولویت بندی است.مکانیزم دست کاربر است‬




                                    ‫سیستم هاي عامل پیشرفته‬                                         ‫62‬
                                          ‫الگوریتم های زمان بندی ایستا‬

                                                 ‫معیارها در الگوریتم های زمان بندی ایستا‬

‫معیار های زمانبندی برای سیستمهای تک پردازنده ای با سیستمهای چند پردازنده ای فرق می کند.‬
                                                                          ‫زمان اجرا‬    ‫‪‬‬

                                                                 ‫متوسط زمان پاسخ‬       ‫‪‬‬

                                                                ‫متوسط زمان انتظار‬      ‫‪‬‬

                                                                           ‫بهره وری‬    ‫‪‬‬

                                                                       ‫توان عملیاتی‬    ‫‪‬‬

                                                                                 ‫...‬   ‫‪‬‬




                      ‫سیستم هاي عامل پیشرفته‬                                               ‫72‬
                      ‫معیار مهم زمانبندی در سیستمهای چند پردازنده ای‬

‫‪ )make span(Total finish time‬یکی از معیارهای زمانبندی ایستا در سیستمهای چند‬
                                                                         ‫پردازنده ای است.‬

‫حداک ثر زمانی که برای اجرای کل کارها (‪Task‬ها) طول می کشد را ‪ Total finish time‬می‬
                                                                                    ‫گویند.‬

‫حداک ثر زمانی که اخرین کار تمام میشود. هر چه ‪ TFT‬کوچک تر باشد میشود گ فت پردازنده ها متعادلتر‬
                                                                      ‫کارها را انجام میدهند‬




                                    ‫سیستم هاي عامل پیشرفته‬                                      ‫82‬
                                                               ‫معیارهای زمان بندی‬
                                     ‫جمع کل زمانهای اجرا‬
‫= میزان موازی سازی‬
                                  ‫بزرگ ترین زمان در ‪TFT‬‬

                                  ‫زمان پردازش‬
         ‫= بهره وری ‪CPU‬‬
                                     ‫زمان کل‬

                                                  ‫تعداد کار تکمیل شده در واحد زمان‬
              ‫= توان عملیاتی‬
                                     ‫زمان کل‬


                               ‫سیستم هاي عامل پیشرفته‬                                ‫92‬
‫الگوریتمهای زمانبندی ایستا در چند پردازنده ای‬
                             ‫الگوریتم زمانبندی ایستا قابل پس گرفتن‬     ‫‪‬‬

                                           ‫‪Bin Packing‬‬             ‫•‬




                        ‫الگوریتم زمانبندی ایستا غیر قابل پس گرفتن‬      ‫‪‬‬

                 ‫)‪SPT (Shortest Processing Time‬‬

                  ‫)‪LPT (Largest Processing Time‬‬

    ‫)‪RLPT (Reverse Largest Processing Time‬‬

     ‫)‪LSPT (Largest Shortest Processing Time‬‬

                                                ‫الگوریتمهای اک تشافی‬




          ‫سیستم هاي عامل پیشرفته‬                                           ‫03‬
           ‫الگوریتم زمانبندی ایستا قابل پس گرفتن ‪Bin Packing‬‬
‫یک الگوریتم قابل پس گرفتن است. در اين روش به هر پردازنده حداک ثر زمانی به اندازه ‪ FTopt‬داده می‬

                                                                     ‫شود که عبارت است از:‬

‫} )‪FTopt = Max { ∑ Ti , Max(Ti‬‬
                         ‫‪m‬‬
                                                                     ‫طول بزرگ ترين کارموجود‬
                ‫مجموع طول کارها تقسيم بر تعداد پردازنده ها‬

                                                                   ‫ا‬
‫سپس کارها به هر ترتیبی (مثال ترتيب بزرگی به کوچکی) به پردازنده ها نسبت داده می شوند. ادعا میکند‬

                                                                ‫که بهترین ‪ TFT‬را میدهد‬

                                      ‫سیستم هاي عامل پیشرفته‬                                      ‫13‬
                                            ‫مثال الگوریتم ‪Bin Packing‬‬
                                                           ‫زمان کارهای موجود در سيستم عبارتند از:‬

‫}1 ,1 ,2 ,4 ,7 ,8 ,11 ,51{ = ‪Ti‬‬                              ‫2=‪M‬‬
          ‫مجموعه کارها‬                                       ‫تعداد پردازنده ها‬


 ‫} 2/)1+1+2+4+7+8+11+51( ,51 { ‪Ftopt = Max‬‬
      ‫5.42 = }5.42 ,51{ ‪= Max‬‬

‫1‪M‬‬                           ‫51‬                                          ‫11/5.9‬
                                                                                             ‫5.42‬
 ‫2‪M‬‬      ‫11/5.1‬          ‫8‬                        ‫7‬                  ‫4‬           ‫2‬   ‫1‬   ‫1‬
                                                                                             ‫5.42‬

                                  ‫سیستم هاي عامل پیشرفته‬                                            ‫23‬
                ‫الگوریتمهای زمانبندی ایستا غیرقابل پس گرفتن‬

‫ اینجا کار کوچک تر به‬SJF ‫ مثل‬SPT (Shortest Processing Time)
                                               ‫پردازنده بیکار داده میشود‬

                         LPT (Largest Processing Time)

            RLPT (Reverse Largest Processing Time)

            LSPT (Largest Shortest Processing Time)




                      ‫سیستم هاي عامل پیشرفته‬                               33
‫سیستم هاي عامل پیشرفته‬   ‫43‬
                                                               ‫الگوریتم زمانبندی ‪SPT‬‬

                   ‫‪ Shortest Process Time‬یک الگوریتم غیرقابل پس گرفتن است.‬

                  ‫1- کارها (‪Task‬ها) بر اساس زمان اجرایشان به صورت صعودی مرتب می شوند.‬

‫2- کوچک ترين کاردر اولين پردازنده ازاد قرار می گيرد و کار بعدی در پردازنده ازاد بعدی الی اخر تا‬
                                                                  ‫تمام کارها زمانبندی شوند.‬




                                      ‫سیستم هاي عامل پیشرفته‬                                      ‫53‬
‫سیستم هاي عامل پیشرفته‬   ‫63‬
                                                              ‫مثال الگوریتم زمانبندی ‪SPT‬‬
                ‫01 کار موجود در یک سيستم با 3 پردازنده عبارتند از:به صورت صعودی مرتب میکنیم‬
‫}07 ,03 ,02 ,81 ,51 ,9 ,7 ,7 ,4 ,1{ = ‪Ti‬‬                                             ‫3=‪M‬‬


   ‫1‪M‬‬       ‫1‬                       ‫7‬                         ‫81‬                     ‫07‬
        ‫0‬               ‫1‬                        ‫8‬                        ‫62‬                   ‫69‬

   ‫2‪M‬‬           ‫4‬                       ‫9‬                            ‫02‬
        ‫0‬                   ‫4‬                            ‫31‬                     ‫33‬
  ‫3‪M‬‬                ‫7‬                         ‫51‬                           ‫03‬

        ‫0‬                       ‫7‬                              ‫22‬                         ‫25‬

                                    ‫69 = )‪TFT (SPT‬‬

                                            ‫سیستم هاي عامل پیشرفته‬                                  ‫73‬
                                                                     ‫الگوریتم زمانبندی ‪LPT‬‬

                 ‫‪ Longest Processing Time‬یک الگوریتم غیرقابل پس گرفتن است.‬

                                     ‫1- کارها بر اساس زمان اجرایشان به صورت نزولی مرتب می شوند.‬

‫2- بزرگ ترين کاردر اولين پردازنده ازاد قرار می گيرد و کار بعدی در پردازنده ازاد بعدی الی اخر تا تمام‬
                                                                             ‫کارها زمانبندی شوند.‬

                                                                  ‫‪ LPT‬چه مزیتی نسبت ‪ SPT‬به دارد؟‬

             ‫‪ LPT‬بهتر از ‪ SPT‬است.‪ TFT‬بهتراست اما زمان پاسخ و زمان انتظارش بدتر است‬




                                         ‫سیستم هاي عامل پیشرفته‬                                        ‫83‬
                                                ‫مثال الگوریتم زمانبندی ‪LPT‬‬
                                          ‫01 کار موجود در یک سيستم با 3 پردازنده عبارتند از:‬
‫}07 ,03 ,02 ,81 ,51 ,9 ,7 ,7 ,4 ,1{ = ‪Ti‬‬                               ‫3=‪M‬‬


   ‫1‪M‬‬                                           ‫07‬
                                                                                           ‫07‬
   ‫2‪M‬‬          ‫03‬                    ‫21‬                   ‫9‬               ‫4‬
                          ‫03‬                        ‫54‬              ‫25‬           ‫65‬

  ‫3‪M‬‬         ‫02‬            ‫81‬                        ‫9‬         ‫7‬           ‫1‬
                     ‫02‬                     ‫83‬           ‫94‬              ‫45‬    ‫55‬


                          ‫07 = )‪TFT (LPT‬‬
                               ‫سیستم هاي عامل پیشرفته‬                                           ‫93‬
                                                                  ‫الگوریتم زمانبندی ‪RLPT‬‬

 ‫‪ Reverse Longest Processing Time‬یک الگوریتم غیرقابل پس گرفتن است.‬
                                     ‫1- کارها بر اساس زمان اجرایشان به صورت نزولی مرتب می شوند.‬

‫2- بزرگ ترين کار در اولين پردازنده ازاد قرار می گيرد و کار بعدی در پردازنده ازاد بعدی الی اخر تا تمام‬
                                                                           ‫کارها زمانبندی شوند.‬

                                          ‫3- برای هر پردازنده لیست کارهای اجرای ی معکوس می شود.‬

                                                         ‫‪ RLPT‬چه مزیتی نسبت ‪ LPT‬به دارد؟‬




                                         ‫سیستم هاي عامل پیشرفته‬                                         ‫04‬
                                                         ‫مثال الگوریتم زمانبندی ‪RLPT‬‬
        ‫01 کار موجود در یک سيستم با 3 پردازنده عبارتند از:برای هر پردازنده لیستی که میخواید بدین برا اجرا برعکسش کن‬

‫}07 ,03 ,02 ,81 ,51 ,9 ,7 ,7 ,4 ,1{ = ‪Ti‬‬                                                    ‫3=‪M‬‬


   ‫1‪M‬‬                                                         ‫07‬
                                                                                                                 ‫07‬
   ‫2‪M‬‬             ‫4‬                 ‫9‬                              ‫21‬                       ‫03‬
                         ‫4‬                         ‫31‬                             ‫52‬                  ‫65‬

  ‫3‪M‬‬          ‫1‬              ‫7‬                 ‫9‬                      ‫81‬               ‫02‬
                  ‫1‬                   ‫8‬                   ‫71‬                 ‫22‬                    ‫55‬

          ‫07 = )‪TFT (RLPT‬ثابت ماند.زمان پاسخ و انتظار کم شد‬

                                             ‫سیستم هاي عامل پیشرفته‬                                                   ‫14‬
                                                                 ‫الگوریتم زمانبندی ‪LSPT‬‬
    ‫‪ Longest Shortest Processing Time‬یک الگوریتم غیرقابل پس گرفتن است.‬

                                        ‫این الگوریتم تلفیقی از الگوریتم های ‪ SPT‬و ‪ LPT‬است.‬
                                   ‫1- کارها بر اساس زمان اجرایشان به صورت صعودی مرتب می شوند.‬

         ‫2- سپس به ترتیب کارها به دسته های ‪ M‬تای ی تقسیم می شوند ( ‪ M‬تعداد پردازنده ها است).‬

‫3- به ترتیب ‪ M‬کار بصورت ‪ LPT‬زمانبندی می شوند. یعنی بزرگ ترين کار در اولين پردازنده ازاد قرار می‬
                   ‫گيرد و کار بعدی در پردازنده ازاد بعدی الی اخر تا تمام ‪ M‬کارها زمانبندی شوند.‬

                                                     ‫اگر تعداد کارها مضربی از تعداد پردازنده ها باشد؟‬




                                        ‫سیستم هاي عامل پیشرفته‬                                          ‫24‬
                                                  ‫مثال الگوریتم زمانبندی ‪LSPT‬‬
                                                ‫01 کار موجود در یک سيستم با 3 پردازنده عبارتند از:‬
‫}07 ,03 ,02 ,81 ,51 ,9 ,7 ,7 ,4 ,1{ = ‪Ti‬‬                                      ‫3=‪M‬‬



  ‫1‪M‬‬             ‫7‬               ‫7‬                     ‫02‬                    ‫07‬
                         ‫7‬                ‫41‬                       ‫43‬                       ‫401‬

  ‫2‪M‬‬         ‫4‬               ‫9‬                                ‫03‬
                     ‫4‬                 ‫31‬                               ‫34‬
  ‫3‪M‬‬     ‫1‬                   ‫51‬                               ‫81‬
                 ‫1‬                             ‫61‬                  ‫43‬

                             ‫401 = )‪TFT (LSPT‬‬

                                     ‫سیستم هاي عامل پیشرفته‬                                          ‫34‬
                                                    ‫الگوریتم های زمانبندی اک تشافی‬

                                              ‫روشهای اک تشافی برای کاربرد های خاص ایجاد می شوند:‬

                                            ‫‪ MAX-MIN‬و ‪ OLB‬و ‪ MET‬و ...‬

                                                                                              ‫تمرین‬
                                                                 ‫ا‬
                                                 ‫روشهای مبتنی بر هوشمندی (اک ثرا غیرقطعی هستند)‬

                                                       ‫الگوریتم ژنتیک و ‪ PSO‬و کلونی مورچه ها و ...‬

‫الگوریتمهای مبتنی بر روشهای هوشمند یک روش جستجو هستند که از روشهای کالسیک و قطعی بهترند ولی‬

                                                         ‫تضمین یافتن زمانبندی بهینه را نمی دهند.‬
                                     ‫سیستم هاي عامل پیشرفته‬                                           ‫44‬
                                    ‫گراف جهت دار غیر حلقه بدون دور‬

                                  ‫بعضی از مواقع ترتیب و تقدم اجرای کارها مهم است که‬

‫)‪ Directed Acyclic Graph (DAG‬ترتیب اجرا را نشان می دهد و برای‬
                   ‫سیستمهای چند پردازنده ای و توزیع شده نیز قابل استفاده است.‬




        ‫1‪T‬‬
                           ‫3‪ T2, T‬در صورتی اجرا می شود که 1‪ T‬تمام شده باشد‬

  ‫2‪T‬‬         ‫3‪T‬‬



                           ‫سیستم هاي عامل پیشرفته‬                                     ‫54‬
                                       ‫گراف وزندار جهت دار غیر حلقه بدون دور‬

             ‫بعضی از مواقع عالوه بر ترتیب و تقدم اجرای کارها هزینه ارتباط بین کارها نیز مهم است که‬

‫)‪ Weighted Directed Acyclic Graph (WDAG‬ترتیب اجرا و هزینه‬
                                                                  ‫ارتباط بین کارها را نشان می دهد.‬




              ‫1‪T‬‬      ‫1‬
                                               ‫زمان اجرای 3‪ T1, T2, T‬به ترتیب 1، 6 و 5 است.‬
         ‫3‬            ‫2‬
                                       ‫3‪ T‬حداقل 2 واحد زمان بعد از اتمام 1‪ T‬بایستی اغاز به اجرا‬
‫6‬   ‫2‪T‬‬                ‫5 3‪T‬‬                                                                  ‫نماید.‬


                                         ‫سیستم هاي عامل پیشرفته‬                                      ‫64‬

								
To top