موضوع مقاله: وضعیت پردازه | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # وضعیت پردازه | مقدمه: در یک سیستم کامپیوتری چند وظیفه‌ای، فرایندها ممکن است حالت‌های مختلفی داشته باشند. | ## بخش 1: وضعیت پردازه | وضعیتهای پردازه اولیه این وضعیت‌های پردازه معمولی که در زیر آمده در همه نوع سیستم‌های کامپیوتری امکان‌پذیر است. به‌طور معمول در بسیاری از سیستم کامپیوتر رومیزی، این پذیرش به صورت خودکار انجام می‌شود. با این حال، برای سیستم عامل‌های زمان واقعی این پذیرش ممکن است با تأخیر انجام شود. آماده یک پردازه در حالت «آماده» یا «انتظار» در حافظه اصلی بارگذاری شده و در انتظار اجرا در پردازنده است. (که توسط توزیع‌کننده یا برنامه‌ریز کوتاه مدت تعویض زمینه شود) ممکن است فرایندهای بسیاری در هر نقطه از اجرای سیستم در وضعیت «آماده» وجود داشته باشند. به عنوان مثال، در یک سیستم یک پردازنده، تنها یک فرایند می‌توان در هر زمان اجرا شود، و تمام فرایندهای «به صورت همزمان اجرا» منتظر اجرا خواهند شد. کامپیوترهای مدرن قادر به اجرای بسیاری از برنامه‌ها یا فرایندهای مختلف به صورت هم‌زمان هستند. فرایندهایی که آماده برای پردازنده هستند در یک صف برای فرایندهای «آماده» نگهداری می‌شود. فرایندهای دیگر که در حال انتظار برای یک رویداد هستند، مانند بارگذاری اطلاعات از یک هارد دیسک یا انتظار در اتصال به اینترنت، در صف آماده نیست. | ## بخش 2: وضعیت پردازه | در حال اجرا پردازه زمانی که برای اجرا انتخاب شده‌است، به وضعیت در حال اجرا می‌رود. دستورالعمل پردازه‌ها توسط یکی از پردازنده‌ها (یا هسته‌ها) از سیستم اجرا می‌شوند. سطح هسته فرایندهای در سطح هسته می‌تواند هر دو (آدرس هسته و کاربر) دسترسی داشته باشند. سطح هسته اجازه می‌دهد تا دسترسی نامحدود به سخت‌افزار از جمله اجرای دستورالعمل ممتاز انجام شود. دستورالعمل‌های مختلف (مانند دستورالعمل‌های I / O و دستورالعمل توقف) مزیت دارند و تنها می‌توانند در سطح هسته اجرا شوند. سطح کاربر (user mode) فرایندهای در سطح کاربر می‌تواند به دستورالعمل‌ها و داده‌های خود دسترسی داشته باشند اما نه به دستورالعمل‌ها و داده‌های هسته (یا آن‌هایی که از پردازه‌های دیگر هستند). هنگامی که سیستم‌های کامپیوتری در حال اجرا به نمایندگی از یک نرم‌افزار کاربر است، سیستم در سطح کاربر است. با این حال، هنگامی که یک برنامه کاربر درخواست خدمات از سیستم عامل را دارد (از طریق فراخوانی سیستم)، سیستم باید برای انجام این درخواست، سطح کاربر به سطح هسته انتقال انجام دهد. سطح کاربر از شکست‌های مختلف فاجعه بار اجتناب می‌کند: -یک فضای آدرس مجازی جدا برای هر فرایند در سطح کاربر وجود دارد. | ## بخش 3: وضعیت پردازه | -سطح کاربر اجرای متمایز هر یک از پردازه‌ها را طوری که آن پردازه روی دیگر پردازه‌ها تأثیر نگذارد تضمین می‌کند. مسدود (blocked) روند انتقال پردازه به حالت مسدود زمانی است که نمی‌تواند آن را بدون تغییر خارجی در وضعیت یا رخداد رویداد ادامه دهد. برای مثال، یک فرایند ممکن است در یک تماس به دستگاه I/O مانند چاپگر (در صورتی که چاپگر در دسترس نیست) مسدود شود. این برنامه زمینه دیگر اجرا نمی‌شود، ولی پردازه در جدول پردازه به عنوان پردازه زامبی باقی می‌ماند تا زمانی که پردازهٔ والدش فراخوانی سیستم "wait" را صدا بزند تا وضعیت خارج شدن آن را بخواند؛ که در آن نقطه پردازه از جدول فرایند حذف شده، در نهایت پایان دادن به عمر این روند انجام می‌شود. وضعیت‌های پردازه اضافه دو وضعیت بیشتر برای پردازه‌ها در سیستم‌هایی که حافظه مجازی را پشتیبانی می‌کنند در دسترس هستند. در هر دو این وضعیت‌ها، پردازه‌ها «ذخیره شده» بر روی حافظه‌های ثانویه (معمولاً یک هارد دیسک) هستند. در سیستم‌هایی که حافظه مجازی را پشتیبانی می‌کنند، یک پردازه ممکن است جابجا شود، یعنی از حافظه اصلی حذف شود و در حافظهٔ خارجی توسط برنامه‌ریز قرار داده شود. | ## جمع‌بندی | در این رویداد پردازه، هم جابجا شده و هم مسدود، و ممکن است دوباره تحت شرایط مشابه به عنوان یک فرایند جابجا شده و در حال انتظار برگردد.