دانلود الگوریتم زمانبندی صف چندگانه FB(ناقص)

نظرات 0

دانلود پروژه شماره 218: الگوریتم زمانبندی صف چندگانه  feed back



این پروژه کد برنامه نویسی الگوریتم  FB و به زبان c میباشد.




توضیحات الگوریتم

انواع زمان‌بندها

سه نوع زمان‌بند در سیستم‌عامل‌ها وجود دارد:

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

بسته به نوع سیستم‌عامل، ممکن است از همه این زمان‌بندها استفاده نشود. برای مثال در سیستم‌عامل‌های اشتراک زمانی معمولاً از زمان‌بند بلند مدت استفاده نمی‌شود

.

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

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


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

این زمان‌بند، کارها را به طور موقت از روی حافظه اصلی برمی‌دارد و در حافظه جانبی (مثل دیسک) قرار می‌دهد (یا برعکس). این تکنیک بیشتر با نام مبادله یا صفحه‌بندی شناخته می‌شود. زمان‌بند میان‌مدت ممکن است تصمیم بگیرد که پروسه‌ای که برای مدتی غیر فعال بوده، یا پروسه‌ای که اولویت پایینی دارد، یا پروسه‌ای که مکرراً نقص صفحه تولید می‌کند، یا پروسه‌ای که مقدار زیادی از حافظه را اشغال کرده را از حافظه اصلی خارج کرده و موقتاً در دیسک قرار دهد. سپس وقتی که حافظه بیشتری در دسترس قرار گرفت یا پروسه دیگر منتظر منابع نبود، آن را از دیسک برداشته و در حافظه قرار می‌دهد.



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

زمان‌بند کوتاه‌مدت یا زمان‌بند پردازنده، یکی از پروسه‌هایی که در صف آماده قرار دارد را انتخاب کرده و پردازنده را به آن پروسه اختصاص می‌دهد تا اجرا شود. این زمان‌بند بعد از رخ دادن یک وقفه ساعت، یک وقفه ورودی/خروجی، اجرای یک فراخوان سیستمی، یا دریافت یک سیگنال فعال می‌شود و یکی از پروسه‌های منتظر در صف اجرا را برای پردازش شدن انتخاب می‌کند. بنابراین زمان‌بند کوتاه‌مدت نسبت به زمان‌بندهای بلندمدت و میان‌مدت وقت کمتری برای تصمیم گیری دارد و ممکن است در ثانیه چند بار اجرا شود. زمان‌بند کوتاه‌مدت می‌تواند انحصاری یا غیر-انحصاری باشد. اگر به صورت غیر انحصاری باشد، می‌تواند پردازنده را از یک پروسه در حال اجرا بگیرد و آن را به پروسه دیگری اختصاص دهد. زمان‌بند انحصاری این کار را انجام نمی‌دهد و پروسه خودش باید پردازنده را رها کند. (به این حالت چندبرنامگی تعاونی می‌گویند.)



صف چندگانه فیدبک

صف چندگانه فیدبک: Multilevel queue scheduling) وقتی استفاده می‌شود که بتوان پروسه‌ها را به آسانی به گروه‌هایی دسته‌بندی کرد. برای مثال یک روش رایج برای تقسیم کردن این است که پروسه‌های پیش‌زمینه: foreground) که تعاملی هستند) در یک گروه و پروسه‌های پس‌زمینه : background  ) که دسته‌ای هستند) در گروهی دیگر قرار گیرند. این دو گروه، احتیاج به زمان پاسخ‌دهی متفاوتی دارند. هر پروسه وارد یک صف خاص می‌شود. صف‌ها نسبت به هم اولویت دارند. مثلاً اولویت اجرای پروسه‌های پیش‌زمینه از پروسه‌های پس زمینه بیشتر است. هر صف می‌تواند الگوریتم زمان‌بندی مخصوص به خود را داشته باشد. مثلاً یک صف از زمانبندی نوبت گردشی و صف دیگر از زمانبندی SRT استفاده کند. این الگوریتم در سیستم‌عامل‌های مدرن هم استفاده می‌شود.