پیاده سازی الگوریتم راند رابین (ROUND ROBIN) در متلب

پیاده سازی الگوریتم راند رابین (ROUND ROBIN) در متلب عنوان موضوعی است که در این پست به آن پرداخته ایم. در این پست به نحوه پیاده سازی و یک مثال کامل از این الگوریتم خواهیم پرداخت. سورس کد الگوریتم راند رابین بصورت کامل همراه با زمان های اجرا و زمان ورود هر فرآیند آمده است. در ادامه به بررسی این الگوریتم می پردازیم.

 

مفهوم زمانبندی در سیستم عامل

هدف چند برنامه گی این است که در همه اوقات ، پردازشی در حال اجرا وجود داشته باشد تا بهره وری cpu بیشینه شود. هدف اشتراک زمانی آن است که cpu مابین پردازش ها به قدری مکرر، سوئیچ نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند.زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود . بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد زمانبند (Schedulr) نامیده می شود. پردازش هائی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده (ready queue) قرار می گیرند. این صف معمولاً به شکل یک لیست پیوندی (linked list) پیاده سازی می شود. پردازش در حال اجرا بنا به دلایل زیر می تواند به صف آماده برود تا زمانبندی مجدد شود :

  1. پردازش می تواند یک درخواست I/O منتظر بماند تا به آن سرویس داده شود.
  2. پردازش می تواند یک پردازش جدید (فرزند) ایجاد نموده و برای اتمام آن صبر کند.
  3. پردازش به علت تمام شدن برش زمانی (time slice) از cpu جدا می شود تا این امکان به بقیه پردازش ها نیز داده شود که از بقیه cpu استفاده کنند.
  4. پردازش منتظر وقوع یک وقفه باشد.

شکل زیر این حالات را نشان می دهد.

الگوریتم راند رابین

معیار های زمانبندی

1- عدالت (Fairness) یعنی اطمینان از اینکه هر پروسس سهم عادلانه و منصفانه ای از cpu را دریافت کند.

2- کارایی یا بهره وری ( utilization-Efficiency)cpu یعنی اینکه cpu در تمام زمان ها (حتی الامکان) مشغول باشد.

3- زمان پاسخ(Response Time ) یعنی به حداقل رساندن زمان پاسخ برای فرمانهای محاوره ای کاربر. این زمان معمولاَ با سرعت ابزار خروجی محدود می شود.

4- زمان برگشت (یا گردش کار Turn around ) یعنی به حداقل رساندن زمانی که کاربران دسته ای باید منتظر بمانند تا خروجی آنها پدید آید. فاصله زمانی از لحظه تحویل کار تا تکمیل کار را زمان برگشت می نامند ولی زمان پاسخ مدت زمانی است که از صدور یک تقاضا تا تولید اولین پاسخ آن طول می کشد(نه زمان خروجی کل برنامه).

زمان بارگذاری در حافظه+زمان عملیات I/O +زمان اجراء+زمان انتظار در صف آماده=زمان گردش کار

5- توان عملیاتی یا گذردهی(through put ) به تعداد پردازش هایی که در واحد زمان تکمیل می شوند توان عملیاتی می گویند. الگوریتم زمانبندی باید به گونه ای باشد که این معیار را افزایش دهد.

6- زمان انتظار (waiting time ) الگوریتم زمانبندی cpu ، بر میزان زمان اجرای پردازش یا اعمال I/O اثر نمی کند ، بلکه فقط در زمان صرف شده جهت انتظار در صف آماده اثر می گذارد. زمان انتظار ، مجموع پریود های زمانی صرف شده در صف آماده می باشد. البته ممکن است تعدادی از اهداف فوق با هم در تضاد باشند.

الگوریتم راند رابین round robin

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

سیستم‌عاملی که از زمانبند الگوریتم راند رابین round robin استفاده می‌کند، اولین فرآیند از صف آماده را می‌گیرد، یک شمارشگر را تنظیم می‌کند تا پس از یک کوانتوم زمانی، قطع شده و پردازنده را به فرآیند بعدی بدهد. اگر زمان متوالی پردازشی این فرآیند کوچکتر از کوانتوم زمانی باشد، آنگاه پردازنده را به‌طور داوطلبانه، یا با فسخ و یا صدور یک درخواست I/O آزاد می‌کند. سپس سیستم‌عامل به پردازش فرآیند بعدی حاضر در صف آماده می‌پردازد. در سوی دیگر اگر زمان متوالی پردازشی فرآیند، بزرگتر از کوانتوم زمانی باشد، آنگاه شمارشگر بعد از پایان یک کوانتوم زمانی خاموش می‌شود و فرآیند فعلی را قطع کرده (مانع ادامه‌ی اجرای آن می‌شود) و بلوک کنترل فرآیند آن را به انتهای صف آماده ارسال می‌کند.

 

مثالی از حل الگوریتم زمانبندی راند رابین با زمان ورود

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

فرض می کنیم کوانتوم زمانی نیز برابر با 2 باشد در این صورت فرآیندها به ترتیب بصورت زیر اجرا خواهند شد.

P1,P1,P2,P3,P4,P5,P1,P2,P3,P4,P3,P4,P3,P4,P4

پس از اجرای فرآیندها معیارهای آنها اندازه گیری می شود. که بصورت زیر است.

برای دانلود سورس کد کامل الگوریتم راند رابین در متلب آن را خریداری کنید.

ویدئوی معرفی محصول

درباره محصول

سورس کد الگوریتم زمانبندی راند رابین Round Robin در متلب 2014 نوشته شده است. این کد بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید. بمحض خرید محصول لینک دانلود در دسترس خواهد بود.

18,000 تومان

2 دیدگاه برای پیاده سازی الگوریتم راند رابین (ROUND ROBIN) در متلب

  1. programstore

    نظرات و دیدگاه های خود را با ما درمیان بگذارید.

  2. programstore

    آخرین تغییرات در سورس کد به تاریخ بروز رسانی جدید اعمال شده است.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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