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




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

هدف چند برنامگی این است که در همه اوقات ,پردازشی در حالت اجرا وجود داشته باشد تا بهره وری CPU ما بین پردازش ها به قدر مکرر , سوئیچ نماید که کاربران با برنامه در حال اجرا محاوره داشته باشند.


زمانی که بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگیرد که کدامیک اول اجرا شود. بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد زمانبندی (Scheduler) نامیده می‌شود. پردازش‌هایی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده (ready queue) قرار می‌گیرند.
این صف معمولا به شکل یک لیست پیوندی (linked list) پیاده سازی می‌شود. سرایند صف (header queue) شامل اشاره‌گرهایی به اولین و آخرین PCB های لیست می‌باشد:

البته در سیستم صفهای دیگری نیز وجود دارند, مثل صف وسیله(I/O queue) که مشخص می‌سازد هر وسیله توسط چه پردازشهایی مورد نیاز است . هر وسیله صف مخصوص به خود را دارد.

پردازش در حال اجرا بنا به دلایل زیر می‌تواند به صف آماده برود تا زمانبندی مجدد شود:


  • پردازش می‌تواند یک درخواست I/O را صادر نماید و سپس دریک صف I/O منتظر بماند تا به آن سرویس داده شود.


  • پردازش می‌تواند یک پردازش جدید (فرزند) ایجاد نموده و برای اتمام آن صبر کند.


  • پردازش به علت تمام شدن برش زمانی (time slice) از CPU جدا می‌شود تا این امکان به بقیه پردازشها نیز داده شود که از CPU استفاده کنند.



تعداد بازدید ها: 27946