حالات یک پردازش
یک پروسس در زمان حیات خود میتواند دریکی از سه وضعیف اجراء (Running) , آماده (Ready) وبسته (Blocked) قرار گیرد.
هنگامی که دستور اجراء پردزاشی صادر میگردد این پردازش به صف آماده وارد شده و منتظر CPU میماند . انتقال توسط زمانبند پردازش (process sheduler) که بخشی از سیستم عامل است انجام میشود , بدون اینکه خود پروسس از آن اطلاعی داشته باشد. سپس CPU, به پروسس داده میشود تا اجراء گردد .
انتقالزمانی صورت میگیرد که برش زمانی پردازش تمام شده و CPU باید از او گرفته شود , لذا پروسس از حالت Running به حالت Ready میرود . زمانبندی یعنی اینکه در کدام زمان چه پردازشی جهت اجرا انتخاب گردد.
هنگامی که لازم باشد در حال اجرا برای بروز رخدادی(مثل تکمیل انتقال اطلاعات در دستورات I/O) صبر کند آنگاه از حالت Running به حالت Blocked میرود. پس از رفع علت انتظار (مثلاً وقفهای اعلام میکند که انتقال پایان یافته ) پردازش به حالت آماده رفته و در صف انتظار CPU قرار میگیرد.
حالت معلق (supend)
بسیاری از سیستم عاملها با سه حالت Blocked, Running ,Ready پیاده سازی شدهاند ولی اضافه کردن حالت معلق نیز در بسیاری موارد مناسب است . در سیستم قبلی چند فرایند در حافظ نگهداری میشوند و هنگامی که فرایندی منتظر است , CPU میتواند به سراغ فرآیند دیگری برود. اما غالباً سیستم چند برنامهای نیز , CPUمیتواند غالباً بی کار باشد.
برای رفع این مشکل میتوان از تکنیک مبادله استفاده کرد, یعنی تمام یا بخشی از یک فرایند را از حافظه اصلی به دیسک منتقل ساخت . هنگامی که هیچ یک از پردازش های موجود در حافظه اصلی و حالت آماده نیستند, در اینحال سیستم عامل میتواند یکی از پردازش های مسدود را از حافظه اصلی خارج کرده و به صف فرآیندهای معلق روی دیسک ببرد(مبادله کند).وقتی سیستم عامل عمل مبادله به خارج را انجام داد, برای آوردن فرآیند بعدی به حافظه اصلی دو انتخاب دارد .
یا میتواند فرایندی که به تازگی ایجاد شده است را بپذیرد یا فرآیندی که قبلاً معلق بوده را بیاورد.
تعداد بازدید ها: 25562