فرایند (رایانش): تفاوت میان نسخه‌ها

بدون خلاصۀ ویرایش
(اصلاح نویسه‌های عربی، اصلاح فاصلهٔ مجازی، اصلاح ارقام، اصلاح سجاوندی، اصلاح املا، ابرابزار)
بدون خلاصۀ ویرایش
{{بهبود منبع}}
[[پرونده:Process_vs._Program_vs._Thread.jpg|بندانگشتی|400x400پیکسل|[[برنامه (رایانه)|برنامه]] دربرابر [[فرایند (رایانش)|پردازه]] دربرابر [[ریسه (رایانش)|ریسه]] {{سخ}}[[زمان‌بندی (رایانش)|زمان‌بندی]]، [[پیش‌اجرایی (رایانش)|پیش‌اجرایی]]، [[تعویض زمینه]]]]
'''پردازه'''، یا '''فرایند<ref>{{یادکرد وب|عنوان=واژه‌نامه مرجع برای ترجمه محیط لینوکس|تاریخ بازبینی=۲۷ دسامبر ۲۰۱۱|ناشر=شورای عالی انفورماتیک|نشانی=http://tihcec.tabaar.com/Nashrie/Files/874.pdf|کد زبان=FA|archiveurl=https://web.archive.org/web/20120112083716/http://tihcec.tabaar.com/Nashrie/Files/874.pdf|archivedate=۱۲ ژانویه ۲۰۱۲|dead-url=yes}}</ref>''' یا '''پروسه''' {{به انگلیسی|process}} در [[رایانش]]، یک [[نمونه (علوم رایانه)|نمونه]] از یک [[برنامه (رایانه)|برنامه]] رایانه‌ای است که توسط یک یا بیشتر [[ریسه (رایانش)|ریسه]] در حال اجرادرحال‌اجرا می‌باشد. یک پردازه، شامل یک برنامه و کنش‌های مرتبط با آن ([[پشته]]، مقدار فعلی [[ثبات]]‌ها، منابع (مانند فایل‌های بازشده)، ساختار [[بلاک کنترل فرایند]] و …) است. بر اساس نوع [[سیستم‌عامل]] (OS)، یک پردازه می‌تواند از چندین ریسه تشکیل شود، که دستورالعمل‌ها را به صورت [[همروندی (علوم رایانه)|همروند]] اجرا می‌کنند.<ref name="OSC Chap4">{{cite book|last1=Silberschatz|first1=Abraham|author-link=Abraham Silberschatz|last2=Cagne|first2=Greg|last3=Galvin|first3=Peter Baer|date=2004|title=Operating system concepts with Java|edition=Sixth|chapter=Chapter 4. Processes|publisher=[[John Wiley & Sons]]|isbn=0-471-48905-0}}</ref><ref name="Vah96">{{cite book|last=Vahalia|first=Uresh|date=1996|title=UNIX Internals: The New Frontiers|chapter=Chapter 2. The Process and the Kernel|publisher=Prentice-Hall Inc.|isbn=0-13-101908-2|url-access=registration|url=https://archive.org/details/unixinternalsnew00vaha}}</ref>
 
درحالیکه یک «برنامه» رایانه‌ایرایانه‌ای، یک گردآورد غیرفعال از [[مجموعه دستورالعمل|دستورالعمل]] است که معمولاً در یک فایل روی دیسک ذخیره شده‌است، یک «پردازه» در واقع اجرای آن دستورالعمل‌ها است که پس از آن صورت می‌گیرد که برنامه از روی دسیک به حافظه بارگذاری شود. چندین پردازه را می‌توان به یک برنامه مشابه مرتبط کرد، برای مثال، باز کردن چندین نمونه از یک برنامه مشابه، معمولاً منجر به ایجاد بیش از یک پردازه دردرحال‌اجرا حالاز اجراآن برنامه می‌شود.
 
[[چندوظیفگی در رایانه|چندوظیفگی]] روشی برای آن است که چندین پردازه، [[واحد پردازش مرکزی|پردازنده‌ها]] (CPUها) و دیگر منابع سیستمی را به اشتراک بگذارند. هر CPU (هسته) در هر زمان فقط یک [[وظیفه (رایانش)|وظیفه]] را اجرا می‌کند. با این حال چندوظیفگی به هر پردازنده امکان آن را می‌دهد، تا بین وظایف درحال‌اجرا [[تعویض زمینه|تعویض]] یابد،شود، و این کار را بدون انتظارمنتظرشدن برای تکمیل هر وظیفه انجام می‌دهد ([[پیش‌اجرایی (رایانش)|پیش‌اجرایی]]). بر اساس پیاده‌سازی سیستم‌عامل، تعویض را می‌توان موقعی اجرا کرد که وظایفوظایف، اعمالفعالیت‌های [[ورودی/خروجی]] را شروع می‌کنند یا برای تکمیل شانتکمیل‌شان صبر می‌کنند، یا موقعی که یک وظیفه به صورت ارادی منجر به یک عمل CPU شود،می‌شود، یا در [[وقفه]]‌های سخت‌افزاری، ویا موقعی که زمان‌بند سیستم‌عامل تصمیم می‌گیردمی‌فهمد که یک پردازهپردازه، زمان عادلانه اشتراک CPU را منقضی ساخته‌استکرده‌است (مثلا با [[زمان‌بند کاملاً عادلانه]] در [[هسته لینوکس]]).
 
یک فرمحالت معمول برای چندوظیفگی، توسطروش [[اشتراک زمانی]] CPU ایجاد می‌شود،است، که یک روشروشی برای درهم‌گذاری اجرای فرایندها و ریسه‌های کاربر، و حتی وظایف مستقل هسته است، اگرچه ویژگی در آخر ذکر شدهشده، تنها در [[هسته (سیستم‌عامل)|هسته‌های]] پیش‌اجرا مثل [[لینوکس]] امکان‌پذیرقابل انجام است. پیش‌اجرایی یک اثرجانبی مهم برای «پردازه‌های تعاملی کهدارای اولویت بالاتریبالاتر نسبت به پردازه‌های وابسته با CPU» دارند،دارد، از این رو به کاربران به صورت فوری،فوری (در موقع اعمال ساده‌ای مثل فشار یک کلید یا حرکت ماوس،ماوس) منابع رایانشی داده می‌شود. بعلاوه، به برنامه‌های کاربردی مثل اجرای ویدیو و موسیقی یک نوع اولویت بلادرنگ داده می‌شود، که هر فرایند با اولویت پایین‌تر را پیش‌اجرا می‌کند. در سامانه‌های اشتراک-زمانی، [[تعویض زمینه]] آن‌قدر سریع انجام می‌شود، که آن را مثل موقعی می‌کند که چندین پردازه به صورت همزمان روی تنها یک پردازنده مشابه اجرا می‌شوند. به اجرای همزمان چندین پردازه، [[همروندی (علوم رایانه)|همروندی]] گفته می‌شود.
 
به دلایل امنیتی و اطمینان‌پذیری، بیشتر [[سیستم‌عامل]]‌های جدید، از [[ارتباط بین پردازشی|ارتباطات]] مستقیم بین پردازه‌های مستقل جلوگیری می‌کنند، که این موضوع باعث ایجاد قابلیت ارتباطی موکداً واسط دارواسط‌دار و کنترل شدهکنترل‌شده بین پردازه‌ها می‌شود.
 
هر فرایند دارای [[فضای آدرس]] مخصوص به خود است. فضای آدرس، یک لیست از مکان‌های حافظه از یک حداقل تا یک حداکثر است که فرایند می‌تواند از آن فضا بخواند یا در آن بنویسد. فضای آدرس شامل برنامه اجرایی، داده‌های برنامه و پشته آن است. همچنین هر فرایند برای خودش دارای یک مجموعه از رجیسترها است که شامل شمارنده، اشاره گر پشته و دیگر رجیسترهای سخت‌افزاری و نیز اطلاعات متنوع دیگری که برای اجرای برنامه مورد نیاز است می‌باشد.