پردازشها در سیستم عامل – راهنمای جامع
پردازش در واقع به یک برنامه در حال اجرا گفته میشود. اجرای یک پردازش میبایست به صورت ترتیبی انجام بگیرد. پردازشها به صورت نهادی تعریف میشوند که واحد پایهایِ کار پیادهسازی شده در سیستم را نشان میدهند. به بیان سادهتر برنامههای رایانهای در فایلهای متنی نوشته میشوند و هنگامی که روی سیستم عامل اجرا میشوند به پردازش تبدیل میشوند و همه وظایف اشاره شده در برنامه را به مرحله اجرا در میآورند. در سیستم عاملهای مدرن، پردازشها به صورت موازی و در کنار هم توسط سیستم عامل اجرا میشوند. در صورتی که در زمان اجرای چند پردازش موازی، آنها نیاز به استفاده از اطلاعات یکدیگر داشته باشند از تکنیک «ارتباط بین پردازشی» (Inter Process Communication | IPC) استفاده میکنند.
زمانی که یک برنامه در حافظه بارگذاری و به یک پردازش تبدیل میشود، میتوان آن را به چهار بخش تقسیم کرد: پشته، هیپ، متن و داده. در تصویر زیر طرح سادهای از پردازش درون حافظه اصلی نمایش یافته است:
بخش پردازش | توضیح |
---|---|
پشته | شته در پردازش شامل دادههای موقتی مانند پارامترهای متد/تابع، آدرسهای بازگشتی و متغیرهای محلی است. |
هیپ | هیپ حافظهای است که به صورت دینامیک در طی زمان اجرا تخصیص مییابد. |
متن | بخش متنی پردازش شامل فعالیت جاری است که بر اساس مقدار Program Counter و محتوای رجیسترهای پردازنده نمایش مییابد. |
دادهها | در این بخش متغیرهای گلوبال و استاتیک وجود دارند. |
برنامه
برنامه قطعهای از کد است که میتواند از یک خط منفرد یا میلیونها خط تشکیل یافته باشد. یک برنامه رایانهای معمولاً به وسیله برنامهنویس رایانه و به یک زبان خاص برنامهنویسی نوشته میشود.
برای نمونه در ادامه برنامه سادهای به زبان C را مشاهده میکنید:
#include <stdio.h> int main() { printf("Hello, World! \n"); return 0; }
یک برنامه رایانهای مجموعهای از دستورالعملها است که هنگام اجرا، وظیفه خاصی را توسط رایانه به انجام میرساند. زمانی که یک برنامه را با یک پردازش مقایسه میکنیم، نتیجه میگیریم که پردازش، وهله دینامیکی از یک برنامه رایانهای محسوب میشود.
بخشی از برنامه رایانهای که وظیفه کاملاً تعریفشدهای را اجرا میکند به نام الگوریتم شناخته میشود. مجموعهای از برنامههای رایانهای، کتابخانهها و دادههای مرتبط به نام نرمافزار نامیده میشوند.
چرخه عمر پردازشها
زمانی که یک پردازش اجرا میشود، حالتهای مختلفی را تجربه میکند. این مراحل بسته به نوع سیستم عامل متفاوت هستند و نام این مراحل نیز استاندارد خاصی ندارد.
به طور کلی یک پردازش در هر زمان یکی از حالتهای زیر را میتواند داشته باشد:
حالت | توضیح |
---|---|
آغاز (Start) | حالت اولیه یک پردازش است که در حالت آغاز یا ایجاد است. |
آماده (Ready) | در این حالت پردازش منتظر انتساب یافتن به یک پردازنده است. پردازشهای آماده در انتظار این هستند که زمان پردازنده از سوی سیستم عامل به آنها اختصاص یابد تا بتوانند اجرا شوند. پردازش پس از مرحله آغاز و یا پس از وقفهای که در آن سیستم عامل، زمان CPU را به پردازش دیگری اختصاص داده است، ممکن است وارد این حالت شوند. |
اجرا (Running) | زمانی که زمان پردازنده از سوی سیستم عامل به پردازش اختصاص یافت، پردازش وارد حالت اجرا میشود و دستورالعملهای آن از سوی پردازنده اجرا میشوند. |
انتظار (Waiting) | پردازش در صورتی که نیاز باشد منتظر منابعی مانند ورودی کاربر یا دسترسی به یک فایل بماند وارد حالت انتظار میشود. |
خاتمه یا خروج (Terminated or Exit) | زمانی که اجزای پردازش پایان مییابد یا از سوی سیستم عامل به آن پایان داده میشود، به حالت خاتمه میرود و بدین ترتیب از حافظه اصلی خارج میشود. |
بلوک کنترل پردازش (PCB)
بلوک کنترل پردازش نوعی ساختمان داده است که از سوی سیستم عامل برای هر پردازش نگهداری میشود. PCB به وسیله یک شناسه پردازش (PID) مشخص میشود.
PCB همه اطلاعات مورد نیاز برای پیگیری روند پردازش را که شامل موارد زیر هستند شامل میشود.
اطلاعات | توضیح |
---|---|
حالت پردازش | حالت کنونی پردازش مانند این که آماده، در حال اجرا، و یا انتظار است را شامل میشود. |
مجوزهای پردازش | این اطلاعات برای فعالسازی یا غیر فعالسازی دسترسی پردازش به منابع سیستم ضروری است |
شناسه پردازش | شناسهای یکتا برای هر پردازش است که از سوی سیستم عامل تخصیص داده میشود. |
اشارهگر (Pointer) | یک اشارهگر به پردازش والد است. |
شمارنده برنامه (Program Counter) | شمارنده برنامه یک اشارهگر به آدرس دستورالعمل بعدی که باید در پردازش اجرا شود محسوب میشود. |
ثباتهای CPU | شامل ثباتها یا رجیسترهای مختلف CPU است که باید برای اجرای پردازش در حالت اجرایی نگهداری شوند. |
اطلاعات مدیریت حافظه | این اطلاعات شامل جدول page، محدودیت حافظه، جدول Segment است و به حافظه مورد استفاده از سوی سیستم عامل وابسته است. |
اطلاعات Accounting | شامل مقدار CPU مورد استفاده برای اجرای پردازش، محدودیت زمانی، شناسه اجرایی و غیره است. |
اطلاعات وضعیتهای IO | شامل فهرستی از دستگاههای ورودی/خروجی تخصیص یافته به پردازش است. |
معماری PCB | به طور کامل به نوع سیستم عامل وابسته است و در سیستمهای عامل مختلف میتواند شامل اطلاعات متفاوتی باشد. در ادامه نمودار سادهای از یک PCB را مشاهده میکنید: |
PCB پردازش در طی چرخه عمر پردازش حفظ میشود و تنها زمانی حذف میشود که پردازش خاتمه یابد.
اگر این نوشته مورد توجه شما قرار گرفته، پیشنهاد ما استفاده از منابع آموزشی زیر است:
- مجموعه آموزشهای نسخههای مختلف ویندوز
- آموزش سیستم های عامل
- مجموعه آموزشهای لینوکس
- سرویس ها در سیستم عامل — راهنمای جامع
- آموزش سیستم عامل (مرور – تست کنکور ارشد)
- مفاهیم سیستم عامل — راهنمای جامع
==