پیاده سازی الگوریتم راند رابین در متلب عنوان موضوعی است که در این پست به آن پرداخته ایم. در این بخش به نحوه پیاده سازی الگوریتم RR در متلب همراه با یک مثال کامل خواهیم پرداخت. سورس کد الگوریتم راند رابین بصورت کامل همراه با زمان های اجرا Burst time و زمان ورود Arrival time هر فرآیند آمده است. در ادامه به بررسی این الگوریتم می پردازیم.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
مفهوم زمانبندی در سیستم عامل
هدف چند برنامه گی Multi Programming در سیستم عامل این است که در همه اوقات، پردازشی در حال اجرا وجود داشته باشد تا بهره وری cpu بیشینه شود. هدف اشتراک زمانی Time Sharing آن است که cpu مابین پردازش ها Process به قدری مکرر، سوئیچ Switch نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند. زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود.
بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد زمانبند Scheduler نامیده می شود. پردازش هائی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده (ready queue) قرار می گیرند. این صف معمولاً به شکل یک لیست پیوندی (linked list) پیاده سازی می شود. پردازش در حال اجرا بنا به دلایل زیر می تواند به صف آماده برود تا زمانبندی مجدد شود:
- پردازش می تواند یک درخواست I/O منتظر بماند تا به آن سرویس داده شود.
- پردازش می تواند یک پردازش جدید (فرزند) ایجاد نموده و برای اتمام آن صبر کند.
- پردازش به علت تمام شدن برش زمانی (time slice) از cpu جدا می شود تا این امکان به بقیه پردازش ها نیز داده شود که از بقیه cpu استفاده کنند.
- پردازش منتظر وقوع یک وقفه باشد.
شکل زیر این حالات را نشان می دهد.
معیار های زمانبندی سیستم عامل
- عدالت (Fairness): یعنی اطمینان از اینکه هر پروسس سهم عادلانه و منصفانه ای از cpu را دریافت کند.
- کارایی یا بهره وری (utilization-Efficiency): cpu یعنی اینکه cpu در تمام زمان ها (حتی الامکان) مشغول باشد.
- زمان پاسخ (Response Time): یعنی به حداقل رساندن زمان پاسخ برای فرمانهای محاوره ای کاربر. این زمان معمولاَ با سرعت ابزار خروجی محدود می شود.
- زمان برگشت (یا گردش کار Turn around): یعنی به حداقل رساندن زمانی که کاربران دسته ای باید منتظر بمانند تا خروجی آنها پدید آید. فاصله زمانی از لحظه تحویل کار تا تکمیل کار را زمان برگشت می نامند ولی زمان پاسخ مدت زمانی است که از صدور یک تقاضا تا تولید اولین پاسخ آن طول می کشد(نه زمان خروجی کل برنامه) – زمان بارگذاری در حافظه + زمان عملیات I/O + زمان اجرا + زمان انتظار در صف آماده = زمان گردش کار
- توان عملیاتی یا گذردهی (through put): به تعداد پردازش هایی که در واحد زمان تکمیل می شوند توان عملیاتی می گویند. الگوریتم زمانبندی باید به گونه ای باشد که این معیار را افزایش دهد.
- زمان انتظار (waiting time): الگوریتم زمانبندی cpu ، بر میزان زمان اجرای پردازش یا اعمال I/O اثر نمی کند ، بلکه فقط در زمان صرف شده جهت انتظار در صف آماده اثر می گذارد. زمان انتظار ، مجموع پریود های زمانی صرف شده در صف آماده می باشد. البته ممکن است تعدادی از اهداف فوق با هم در تضاد باشند.
الگوریتم راند رابین round robin
الگوریتم راند رابین round robin یا RR یکی از قدیمیترین، سادهترین و عادلانهترین و همچنین پرکاربردترین الگوریتمهای زمانبندی است که مخصوص سیستمهای اشتراک زمانی طراحی شده است. در این روش تمام فرآیندها اولویت یکسانی دارند و پس از آنکه هر فرآیند پردازنده را در اختیار گرفت یک کوانتوم زمانی داده میشود. سیستمعاملی که از زمانبند الگوریتم راند رابین round robin استفاده میکند، اولین فرآیند از صف آماده را میگیرد، یک شمارشگر را تنظیم میکند تا پس از یک کوانتوم زمانی، قطع شده و پردازنده را به فرآیند بعدی بدهد.
اگر زمان متوالی پردازشی این فرآیند کوچکتر از کوانتوم زمانی باشد، آنگاه پردازنده را بهطور داوطلبانه، یا با فسخ و یا صدور یک درخواست I/O آزاد میکند. سپس سیستمعامل به پردازش فرآیند بعدی حاضر در صف آماده میپردازد. در سوی دیگر اگر زمان متوالی پردازشی فرآیند، بزرگتر از کوانتوم زمانی باشد، آنگاه شمارشگر بعد از پایان یک کوانتوم زمانی خاموش میشود و فرآیند فعلی را قطع کرده (مانع ادامهی اجرای آن میشود) و بلوک کنترل فرآیند آن را به انتهای صف آماده ارسال میکند.
مثالی از حل الگوریتم زمانبندی راند رابین با زمان ورود
پردازش های زیر را در نظر میگیریم و با استفاده از الگوریتم های زمانبندی راند رابین round robin، میانگین زمان انتظار Average waiting time و زمان کامل شدن Average turn around time آن ها را به دست میآوریم.
فرض می کنیم کوانتوم زمانی نیز برابر با 2 باشد در این صورت فرآیندها به ترتیب بصورت زیر اجرا خواهند شد.
P1,P1,P2,P3,P4,P5,P1,P2,P3,P4,P3,P4,P3,P4,P4
پس از اجرای فرآیندها معیارهای آنها اندازه گیری می شود. که بصورت زیر است.
در کد آماده ای که پس از خرید این محصول در اختیار شما قرار می گیرد می توانید همین مثال را در الگوریتم RR آورده و اجرا کنید. برای مثال های دیگر نیز به راحتی می توانید ورودی های جدید را جایگزین کنید.
ویدئوی اجرای سورس کد
درباره محصول
سورس کد الگوریتم زمانبندی راند رابین Round Robin در متلب نوشته شده است. این کد بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید. بمحض خرید محصول لینک دانلود در دسترس خواهد بود.
مباحث مرتبط با الگوریتم زمانبندی Round Robin
تاریخ انتشار: | 15 مرداد 1397 |
---|---|
تاریخ بروزرسانی: | 28 دی 1397 |
حجم فایل: | 1 کیلوبایت |
فرمت فایل | m. در قالب Matlab |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014 |
تاکنون 379 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 15 مرداد 1397 |
---|---|
تاریخ بروزرسانی: | 28 دی 1397 |
حجم فایل: | 1 کیلوبایت |
فرمت فایل | m. در قالب Matlab |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014 |
2 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
مدیریت و پشتیبانی
آخرین تغییرات در سورس کد به تاریخ بروز رسانی جدید اعمال شده است.
مدیریت و پشتیبانی
نظرات و دیدگاه های خود را با ما درمیان بگذارید.