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

محتوای حذف‌شده محتوای افزوده‌شده
چند پاراگراف اول اصلاح شد.
بدون خلاصۀ ویرایش
خط ۳:
 
[[Scheduling (computing)|Scheduling]], [[Preemption (computing)|Preemption]], [[Context switch|Context Switching]]]]
'''پردازه'''، یا '''فرایند<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)، یک پردازه می تواند از چندین ریسه تشکیل شود، که دستورالعمل ها را به صورت [[همروندی (علوم رایانه)|همروند]] اجرا می کنند.
 
درحالیکه یک برنامه رایانه‌ای یک گردآورد غیرفعال از [[مجموعه دستورالعمل|دستورالعمل]] است که معمولا در یک فایل روی دیسک ذخیره شده است، یک پردازه در واقع اجرای آن دستورالعمل ها است موقعیکه پس از آن صورت می گیرد که برنامه از روی دسیک به حافظه بارگذاری شده استشود. چندین پردازه را می توان به یک برنامه مشابه مرتبط کرد، برای مثال، باز کردن چندین نمونه از یک برنامه مشابه، معمولا منجر به ایجاد بیش از یک پردازه در حال اجرا می شود.
 
[[چندوظیفگی در رایانه|چندوظیفگی]] روشی برای آن است که چندین پردازه، پردازه[[واحد پردازش هامرکزی|پردازنده‌ها]] (CPUها) و دیگر منابع سیستمی را به اشتراک بگذارند. هر CPU (هسته) در هر زمان فقط یک [[وظیفه (رایانش)|وظیفه]] را اجرا می کند. با این حال چندوظیفگی به هر پردازنده امکان آن را می دهد، تا بین وظایف درحال‌اجرا [[تعویض زمینه|تعویض]] یابد، و این کار را بدون انتظار برای تکمیل هر وظیفه انجام می دهد ([[پیش‌اجرایی (رایانش)|پیش‌اجرایی]]). بر اساس پیاده‌سازی سیستم‌عامل، تعویض را می توان موقعی اجرا کرد که وظایف اعمال [[ورودی/خروجی]] را شروع یا برای تکمیل شان صبر می کنند، موقعی که یک وظیفه به صورت ارادی منجر به یک عمل CPU شود، در [[وقفه های|وقفه‌های]] سخت افزاری، و موقعی که زمان‌بند سیستم‌عامل تصمیم می‌گیرد که یک پردازه زمان عادلانه اشتراک CPU را منقضی ساخته است (مثلا با [[زمان‌بند کاملاً عادلانه]] در [[هسته لینوکس]]).
 
یک فرم معمول برای چندوظیفگی، توسط [[اشتراک زمانی]] CPU ایجاد می شود، که یک روش برای درهم‌گذاری اجرای فرایند ها و ریسه‌های کاربر، و حتی وظایف مستقل هسته است، اگرچه ویژگی آخر ذکر شده تنها در [[هسته های(سیستم‌عامل)|هسته‌های]] پیش‌اجرا مثل [[لینوکس]] امکان‌پذیر است. پیش‌اجرایی یک اثرجانبی مهم برای پردازه‌های تعاملی که اولویت بالاتری نسبت به پردازه های وابسته با CPU دارند، از این رو به کاربران به صورت فوری، در موقع اعمال ساده‌ای مثل فشار یک کلید یا حرکت ماوس، منابع رایانشی داده می شود. بعلاوه، به برنامه‌های کاربردی مثل اجرای ویدیو و موسیقی یک نوع اولویت بلادرنگ داده می شود، که هر فرایند با اولویت پایین تر را پیش‌اجرا می کند. در سامانه‌های اشتراک-زمانی، [[تعویض زمینه]] به صورتآن‌قدر سریع انجام می شود، که آن را مثل موقعی می کند که چندین پردازه به صورت همزمان روی یک پردازنده مشابه اجرا می شوند. به اجرای همزمان چندین پردازه، [[همروندی (علوم رایانه)|همروندی]] گفته می شود.
 
به دلایل امنیتی و اطمینان‌پذیری، بیشتر [[سیستم‌عامل|سیستم‌عامل‌های]] جدید، از [[ارتباط بین پردازشی|ارتباطات]] مستقیم بین پردازه‌های مستقل جلوگیری می کنند، که این موضوع باعث ایجاد قابلیت ارتباطی موکدا واسط دار و کنترل شده بین پردازه ها می شود.
 
هر فرایند دارای [[فضای آدرس]] مخصوص به خود است. فضای آدرس، یک لیست از مکان‌های حافظه از یک حداقل تا یک حداکثر است که فرایند می‌تواند از آن فضا بخواند یا در آن بنویسد. فضای آدرس شامل برنامه اجرایی، داده‌های برنامه و پشته آن است. همچنین هر فرایند برای خودش دارای یک مجموعه از رجیسترها است که شامل شمارنده، اشاره گر پشته و دیگر رجیسترهای سخت‌افزاری و نیز اطلاعات متنوع دیگری که برای اجرای برنامه مورد نیاز است می باشد.