پراسس را میتوان یکی از مهمترین مفاهیم در یک سیستمعامل در نظر گرفت که نتیجه استفاده از مفهوم انتزاع یا Abstraction میباشد. در نوشته قبلی با عنوان "مجازی سازی یا Virtualization چیست؟ | مقدمات مجازیسازی در سیستمعامل" به مفاهیم پایهای درمورد سیستمعامل پرداختیم. همچنین مفهوم انتزاع یا Abstraction را به زبان بسیار ساده توضیح دادیم.
حالا که با مقدمات سیستمعامل و همچنین مفهوم انتزاع (Abstraction) آشنا شدیم، میتوانیم به راحتی معنی و مفهوم پراسس را نیز درک کنیم.
پراسس یا Process به زبان ساده
یک برنامه تا قبل از اجرا شدنش مثل یک موجود بی جان است! اما وقتی آن را اجرا میکنیم، گویی آن را زنده کردهایم و در حال انجام کاری است! برای مثال مرورگر موجود برروی سیستم خود را در نظر بگیرید. تا وقتی این مرورگر اجرا نشده است، همانند یک موجود بیجان است و از آن تحت عنوان یک Program یاد میشود. اما به محض اینکه این Program را اجرا میکنید، انگار به آن جان دادهاید! به این موجود جانداری که الان در حال انجام فعالیتهایی میباشد، پراسس میگویند.
پس به زبان ساده، پراسس یک برنامه در حال اجرا است.
اما جلوتر خواهیم گفت که درون مفهوم پراسس، از مفهوم انتزاع یا Abstraction استفاده شده است. در حالیکه در تعریف سادهای که الان ارائه دادیم، نشانی از انتزاع وجود نداشت.
پس بهنظر میرسد باید تعریف خود را دقیقتر کنیم.
پراسس یا Process به زبان فنیتر
وقتی شما میخواهید از اتومبیل استفاده کنید تا شما را به حرکت در آورد، لزومی ندارد که از ساختار موتور، پیستونها، سیستم برقرسانی و... اتومبیل خبر داشته باشید. به همین دلیل یک لایه انتزاعی مثل فرمان، دنده، پدالگاز و... در اختیار شما قرار میگیرد، تا بتوانید با استفاده از آنها به ماشین فرمان بدهید.
در اینجا هم یک برنامه (Program) از پیچیدگیهای CPU و Memory خبر ندارد ولی میتواند به واسطه مفهومی به نام پراسس (Process) با آنها کار کند.
پس پراسس یک لایه انتزاعی برای یک برنامه (Program) به حساب میآید. لایهای که بین برنامهها و سختافزارِ موجود قرار میگیرد. این لایه انتزاعی به برنامه در 2 زمینه اصلی توهم (Illusion) میدهد! یکی استفاده از CPU یکی هم استفاده از RAM.
این توهم چیست و چه کاربردی برای یک برنامه دارد؟
مفهوم پراسس به یک برنامه این توهم را میدهد که تنها استفاده کننده از CPU و Memory خود آن برنامه است. یعنی وقتی برنامه شروع به اجرا میکند، این طور حس میکند که هیچ برنامه دیگری در حال اجرا نیست و میتواند از تمام منابع سیستم استفاده کند. این باعث میشود که دیگر برنامه به فکر این نباشد که چه موقعی باید CPU را آزاد کند تا بقیه هم بتوانند از آن استفاده کنند و یا باعث میشود که برنامه فکر کند، تنها او هست که در حال استفاده از Memory است و دیگر نگران این نیست که به اشتباه در فضای حافظه دیگر برنامههای در حال اجزا چیزی بنویسد.
به بیان دیگر، برنامه فکر میکند بهصورت کاملا جداگانه برای او یک CPU و Memory خریدهایم و به آن گفتهایم که این CPU و Memory مخصوص تو است و برنامه دیگری از آن استفاده نخواهد کرد!
بنابراین، پراسس خود یک Abstraction میباشد که بین برنامه (Program) و سختافزار قرار میگیرد. وظیفه آن این است که به برنامه کمک کند تا راحتتر بتواند از CPU و Memory استفاده کند.