انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: زمانبندی در لینوکس  (دفعات بازدید: 3227 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین elham88

  • Newbie
  • *
  • ارسال: 1
  • جنسیت : دختر
زمانبندی در لینوکس
« : 31 اردیبهشت 1392، 01:03 ق‌ظ »
زمانبندی در لینوکس با الگوریتم RRصورت میگیردکه یکی از رایج ترین و ساده ترین الگوریتمهای زمانبندی است . پیاده سازی آن بسیار ساده است . کافی است یک لیستی از پروسسهای آماده اجرا نگهداری شود .
به هر پروسس یک Quantum (کوانتم) یا Time-slice (برش زمانی) CPU داده می شود . اگر پروسس در پایان کوانتم هنوز خاتمه نیافته باشد ، CPU از آن گرفته می شود و به پروسس بعدی در صف داده می شود .

کارایی الگوریتم RR به طور کامل به مقدار برش زمانی بستگی دارد . به طور کلی کوانتوم زمانی نسبت به زمان سوئیچ متن باید بزرگ باشد چرا که در طی تعویض متن هیچ عمل مفیدی انجام نمی شود.

در سیستم‌عامل لینوکس هر پردازشی در یکی از رده‌های سیاست زمان‌بندی قرار می‌گیرد، که معمولا یکی از مقادیر زیر است:

SCHED_OTHER: سیاست زمان‌بندی برای پردازش‌های عادی
SCHED_FIFO: سیاست زمان‌بندی خروج به ترتیب ورود برای پردازش‌های بلادرنگ
SCHED_RR: سیاست چرخشی برای پردازش‌های بلادرنگ

رده‌های بلادرنگ اولیت بیشتری نسبت به الویت SCHED_OTHER دارند. اگر در این رده‌ها پردازشی برای اجرا وجود داشته باشد، الگوریتم زمان‌بند رده SCHED_OTHER اجرا نمی‌شود.
در رده‌های SCHED_FIFO و SCHED_RR زمان‌بندی با توجه به مقدار اولیت بلادرنگی زمان‌بندی می‌شوند که مقداری بین ۱ تا ۹۹ دارد. مقدار بالاتر متناظر با الویت بالاتر است. در این رده، تا زمانی که پردازشی با اولیت بالاتر وجود داشته باشد، سایر پردازش‌ها فرصت اجرا پیدا نمی‌کنند.
در رده SCHED_OTHER پردازش‌ها با توجه به مقدار اولویت nice که مقداری بین ۲۰- تا ۱۹+ است زمان‌بندی می‌شوند. مقدار بالاتر متناظر با اولیت کمتر است.


در نسخه‌های هسته لینوکس ۲.۴ تا قبل از ۲.۶، الگوریتم زمان‌بندی نسبتا ساده بود، و زمان‌بند هر یک از پردازش‌ها را بررسی می‌کرد و به آن امتیازی می‌داد، و پردازشی که بیشترین امتیاز را به دست می‌آورد را برای اجرا انتخاب می‌کرد. بنابراین پیچیدگی زمانی این الگوریتم از مرتبه O(N) بود. با اینکه الگوریتم نسبتا ساده بود، ولی نسبتا ناکارامد بود و برای سامانه‌های بلادرنگ مناسب نبود.