پراسس چیه؟ آموزش و یادگیری پراسس چیه؟ به صورت رایگان
به زبان ساده پروسس یک برنامه در حال اجراست 💡
Program ها فایلهای ساکن (Passive entity) روی دیسک هستن، اما Process ها یک موجود فعال (Active entity) هستن که توی مموری اجرا میشن!
بیاید با نرمافزار موردعلاقم یعنی Firefox 🦊 یه مثال بزنم :)
فرض کنید فایلی به نام firefox.exe دارید. این فایل یه Program محسوب میشه که روی دیسک (Storage) ذخیره شده. وقتی اجراش میکنید، سیستم عامل میاد و یه Process از روش میسازه که توی مموری ذخیره میشه. اگر چند بار اجراش کنید، چند تا Process جداگانه خواهید داشت که همگی از یه Program ساخته شدن.
هر Process شامل بخشهای زیر هستش:
Program code (text) | کد برنامه
Data | مقادیر متغیرهای Global , Static
Heap | حافظهای که حین اجرای برنامه قابل رزرو هستش
Stack | حافظهای که به صورت خودکار توسط کامپایلر و سیستم عامل رزرو میشه
CPU Register | AC,PSW,IR, …
Program Counter | PC (آدرس دستورالعمل بعدی)
Process Control Block (PCB) | مهمترین بخش هر Process
یکم بیشتر بدونید (مهم)
Process control block یا همون PCB مهمترین بخش سیستم عامل هستش! توی این بخش اطلاعات مربوط به هر Process ذخیره میشه! اطلاعاتی از قبیل:
Process ID
State
Priority
Memory information
Open files
Accounting information
Scheduling information
یه جورایی PCB شناسنامه Process هستش!
استک چیه؟
استک (Stack) نوعی ساختمان داده هستش که به صورت فنی توی رم ذخیره میشه. انواع مختلفی از استک (پشته) ها وجود داره، مثل Control stack که توی فصل قبل دیدیم. ولی استکی که تو این ترد ازش گفتیم، بخشی از مموری هستش که کامپایلر یا سیستم عامل برای یه برنامه در حال اجرا رزرو میکنه و متغیرهای Local , توابع و دیتاهاش , Function argument ها و … توش ذخیره میشن! این فضا محدود هستش و مدیریتش به صورت خودکار توسط خود کامپایلر یا سیستم عامل انجام میشه.
استک از الگوریتم LIFO (Last in First out) استفاده میکنه (در آینده بیشتر آشنا میشیم!)
PCB دقیقا چیه؟
PCB نوعی ساختمان داده هستش که در هسته (Kernel) سیستم عامل وجود داره. 🧠
PCB توی RAM و در حافظه Kernel space ذخیره میشه. این یعنی کاربر و برنامههاش مستقیماً به PCB دسترسی ندارن! همچنین این ساختمان داده توسط OS ساخته و مدیریت میشه.
