زمان بندی پردازش ها (Process Scheduling) در سیستم عامل — راهنمای جامع

۱۶۵۶ بازدید
آخرین به‌روزرسانی: ۲۶ شهریور ۱۴۰۲
زمان مطالعه: ۴ دقیقه
زمان بندی پردازش ها (Process Scheduling) در سیستم عامل — راهنمای جامع

منظور از زمان‌بندی پردازش، فعالیت یک نرم‌افزار مدیریت پردازش است که فرایند حذف پردازش‌های در حال اجرا از CPU و انتخاب پردازش‌های دیگر بر مبنای یک راهبرد خاص را مدیریت می‌کند. زمان‌بندی پردازش جزئی ضروری از سیستم‌های عامل چندبرنامگی است. چنین سیستم‌های عاملی امکان بارگذاری همزمان بیش از یک پردازش در حافظه اجرایی را فراهم می‌سازند و این پردازش‌های بارگذاری شده با استفاده از فرایندی به نام time multiplexing، پردازنده را بین خود به اشتراک می‌گذارند.

صف‌های زمان‌بندی پردازش

سیستم عامل همه PCB ها را در صف‌های زمان‌بندی پردازش نگهداری می‌کند. سیستم عامل یک صف مجزا از هر یک از حالت‌های پردازش نگهداری می‌کند و PCB های همه پردازش‌ها را نیز در همان پشته اجرایی و همان صف ذخیره می‌سازد. زمانی که حالت یک پردازش تغییر یابد، PCB آن از صف جاری جدا می‌شود و به صف حالت جدید می‌رود.

سیستم عامل صف‌های مهم زمان‌بندی پردازش زیر را نگهداری می‌کند:

  • صف Job – این صف همه پردازش‌های سیستم را شامل می‌شود.
  • صف Ready – این صف مجموعه‌ای از پردازش‌های مقیم در حافظه اصلی را نگهداری می‌کند که آماده یا در انتظار اجرا هستند. یک پردازش جدید همواره در این صف قرار می‌گیرد.
  • صف‌ دستگاه‌ها (Devices) – پردازش‌هایی که به دلیل عدم دسترسی به یک دستگاه ورودی/خروجی قفل شده‌اند در این صف قرار می‌گیرند.

سیستم عامل می‌تواند از تدابیر مختلفی برای مدیریت هر صف بهره بگیرد که شامل رویه‌های FIFO, Round Robin، اولویت‌بندی و غیره است. ابزار زمان‌بندی سیستم عامل در مورد چگونگی جابجایی پردازش‌ها بین صف‌های آماده و اجرایی که هر زمان برای هر هسته پردازنده تنها یک پردازش جای دارد تصمیم‌گیری می‌کند. در نمودار فوق همه هسته‌ها در پردازنده (CPU) ادغام شده‌اند.

مدل پردازش دو حالتی

منظور از مدل دو حالتی، حالت‌های اجرایی و غیر اجرایی برای پردازش است که به شرح زیر است:

حالتتوضیح
اجرایی زمانی که یک پردازش ایجاد می‌شود به حالت اجرایی وارد سیستم می‌شود.
غیر اجراییپردازش‌هایی که در حالت اجرایی نیستد در این صف نگهداری می‌شوند و منتظر هستند تا دوباره اجرایی شوند. هر مدخل در این صف یک اشاره‌گر به پردازش خاص است. این صف با استفاده از لیست پیوندی پیاده‌سازی می‌شود. زمانی که یک پردازش متوقف می‌شود در این هنگام پردازش به صف انتظار می‌رود. اگر پردازش به پایان برسد و یا از حافظه خارج شود، در هر صورت پردازش خاتمه یافته تلقی می‌شود و بنابراین ابزار زمان‌بندی پردازش دیگری را از صف اجرایی برای اجرا کردن انتخاب می‌کند.

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

ابزارهای زمان‌بندی نرم‌افزارهای خاص سیستمی هستند که زمان‌بندی پردازش‌ها را به روش‌های مختلفی مدیریت می‌کنند. وظیفه اصلی آن‌ها انتخاب وظایف تحویلی به سیستم و تصمیم‌گیری در مورد این نکته است که کدام پردازش باید اجرا شود. ابزارهای زمان‌بندی به صورت‌های زیر هستند:

  • زمان‌بندی بلندمدت
  • زمان‌بندی کوتاه‌مدت
  • زمان‌بندی میان‌مدت

زمان‌بندی بلندمدت

این نوع زمان‌بندی که به نام زمان‌بندی job نیز شناخته می‌شود و در مورد این که کدام برنامه ارائه شده به سیستم باید مورد پردازش قرار گیرد تصمیم‌گیری می‌کند. این ابزار پردازش‌ها را از صف مربوطه انتخاب کرده و آن‌ها را برای اجرا در حافظه بارگیری می‌کند. پردازش‌ها برای زمان‌بندی CPU وارد حافظه می‌شوند.

هدف اصلی زمان‌بندی job ارائه ترکیب متعادلی از وظایف مثلاً وظایف مرتبط با ورودی/خروجی و وظایف مرتبط با پردازنده است. این ابزار همچنین میزان چند برنامگی را کنترل می‌کند. اگر میزان چندبرنامگی پایدار باشد، در این صورت نرخ میانگین ایجاد پردازش باید متناسب با نرخ میانگین خروج پردازش‌ها از سیستم باشد.

روی برخی سیستم‌ها، ابزارهای زمان‌بندی بلندمدت ممکن است وجود نداشته باشد یا بسیار کوچک باشد. برای نمونه سیستم‌های عامل اشتراک زمانی ابزارهای زمان‌بندی بلندمدت برای پردازش‌ها ندارند. زمانی که یک پردازش حالت خود را از آغاز به آماده تبدیل می‌کند، این پردازش از ابزار زمان‌بندی بلندمدت بهره می‌گیرد.

زمان‌بندی کوتاه‌مدت

این ابزار به نام زمان‌بندی CPU نیز نامیده‌ می‌شود. هدف اصلی این ابزار، افزایش عملکرد سیستم در هماهنگی با مجموعه معیارهای منتخب است. این ابزار مسئول تغییر حالت پردازش از آماده به حالت اجرایی است. ابزار زمان‌بندی CPU یک پردازش را از میان پردازش‌هایی که آماده اجرا هستند، انتخاب کرده و آن را به CPU تخصیص می‌دهد.

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

زمان‌بندی میان‌مدت

ابزارهای زمان‌بندی میان‌مدت بخشی از swapping هستند. این ابزارها پردازش‌ها را از حافظه خارج می‌کنند. این امر موجب کاهش چندبرنامگی می‌شود. زمان‌بندی میان‌مدت مسئول مدیریت جایگزینی پردازش‌های پایان یافته است.

یک پردازش اجرایی در صورتی که تقاضای I/O داشته باشد معلق می‌شود. پردازش معلق شده نمی‌تواند حرکتی به سمت کامل شدن بردارد. در این شرایط، برای حذف پردازش از حافظه و ایجاد فضا برای پردازش‌های دیگر، پردازش معلق شده باید به حافظه ثانویه منتقل شود. این فرایند به نام swapping نامیده می‌شود و به این پردازش نیز یک پردازش سواپ شده یا rolled out گفته می‌شود. فرایند سواپ کردن برای بهبود ترکیب پردازش‌ها امری ضروری است.

مقایسه زمان‌بندی‌های مختلف

ردیفزمان‌بندی بلندمدتزمان‌بندی کوتاه‌مدت زمان‌بندی میان‌مدت
1زمان‌بندی job است زمان‌بندی CPU استزمان‌بندی سواپ کردن است
2سرعت کمتر از زمان‌بندی کوتاه‌مدت است سرعت سریع‌تر از دو مورد دیگر استسرعت بین زمان‌بندی کوتاه‌مدت و بلندمدت است
3میزان چند برنامگی را کنترل می‌کندکنترل کمتری روی چندبرنامگی ارائه می‌کندمیزان چندبرنامگی را کاهش می‌دهد
4در سیستم‌های عامل اشتراک زمانی، وجود ندارد یا کمرنگ است در سیستم عامل اشتراک زمانی، کمرنگ استجزوی از سیستم‌های عامل اشتراک زمانی است
5پردازش‌ها را از یک pool انتخاب می‌کند و آن‌ها را در حافظه اجرایی بارگذاری می‌کند.پردازش‌هایی که آماده اجرا هستند را انتخاب می‌کندپردازش‌ها را می‌تواند مجدداً وارد حافظه کرده و اجرای آن‌ها را تداوم بخشد.

سوئیچ زمینه (Context Switch)

سوئیچ زمینه سازوکاری است که حالت زمینه یک CPU در بلوک کنترل پردازش را ذخیره‌سازی و بازیابی می‌کند به طوری که اجرای یک پردازش را می‌توان از همان نقطه در مدتی بعد از سر گرفت. سویچر زمینه با استفاده از این تکنیک امکان استفاده چندین پردازش از یک CPU را ایجاد می‌کند. سویچ کردن زمینه جزئی ضروری از سیستم‌های عامل چندوظیفگی است.

زمانی که ابزار زمان‌بندی CPU را از اجرای یک پردازش به اجرای پردازش دیگری سوئیچ می‌کند، حالت پردازش اجرایی حاضر در بلوک کنترل پردازش ذخیره می‌شود. سپس این حالت برای سوئیچ اجرای بعدی از PCB خودش بارگذاری می‌شود و از آن برای تعیین PC، رجیسترها و موارد غیره استفاده می‌شود. در این زمان پردازش دوم می‌تواند شروع به اجرا کند.

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

شمارنده برنامه

  • اطلاعات زمان‌بندی
  • مقدار رجیستر پایه و محدودیت آن
  • رجیستر مورد استفاده کنونی
  • حالت تغییر یافته
  • اطلاعات حالت I/O
  • اطلاعات Accounting

اگر این مطلب برایتان مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۱۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
tutorialspoint
نظر شما چیست؟

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