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

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۱: خط ۱:
{{بهبود منبع}}
{{بهبود منبع}}
[[پرونده:Program vs Process vs Thread.jpg|بندانگشتی|400x400پیکسل|[[برنامه (رایانه)|برنامه]] دربرابر [[فرایند (رایانش)|پردازه]] دربرابر [[ریسه (رایانش)|ریسه]] {{سخ}}[[زمان‌بندی (رایانش)|زمان‌بندی]]، [[پیش‌اجرایی (رایانش)|پیش‌اجرایی]]، [[تعویض زمینه]]]]
[[پرونده:Concepts- Program vs. Process 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>
'''پردازه'''، یا '''فرایند<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>



نسخهٔ ‏۲۸ فوریهٔ ۲۰۲۱، ساعت ۱۳:۰۲

برنامه دربرابر پردازه دربرابر ریسه
زمان‌بندی، پیش‌اجرایی، تعویض زمینه

پردازه، یا فرایند[۱] یا پروسه (به انگلیسی: process) در رایانش، یک نمونه از یک برنامه رایانه‌ای است که توسط یک یا بیشتر ریسه درحال‌اجرا می‌باشد. یک پردازه، شامل یک برنامه و کنش‌های مرتبط با آن (پشته، مقدار فعلی ثبات‌ها، منابع (مانند فایل‌های بازشده)، ساختار بلاک کنترل فرایند و …) است. بر اساس نوع سیستم‌عامل (OS)، یک پردازه می‌تواند از چندین ریسه تشکیل شود، که دستورالعمل‌ها را به صورت همروند اجرا می‌کنند.[۲][۳]

درحالیکه یک «برنامه» رایانه‌ای، یک گردآورد غیرفعال از دستورالعمل است که معمولاً در یک فایل روی دیسک ذخیره شده‌است، یک «پردازه» در واقع اجرای آن دستورالعمل‌ها است مستلزم آن است که برنامه قبل از آن از روی دسیک به حافظه بارگذاری گردد. چندین پردازه را می‌توان به یک برنامه مشابه مرتبط کرد، برای مثال، بازکردن چندین نمونه از یک برنامه مشابه، معمولاً منجر به ایجاد بیش از یک پردازه درحال‌اجرا از آن برنامه می‌شود.

چندوظیفگی روشی برای آن است که چندین پردازه، پردازنده‌ها (CPUها) و دیگر منابع سیستمی را به اشتراک بگذارند. هر CPU (هسته) در هر زمان فقط یک وظیفه را اجرا می‌کند. با این حال چندوظیفگی به هر پردازنده امکان آن را می‌دهد، تا بین وظایف درحال‌اجرا تعویض شود، و این کار را بدون منتظرشدن برای تکمیل هر وظیفه انجام می‌دهد (پیش‌اجرایی). بر اساس پیاده‌سازی سیستم‌عامل، تعویض را می‌توان موقعی اجرا کرد که وظایف، فعالیت‌های ورودی/خروجی را شروع می‌کنند یا برای تکمیل‌شان صبر می‌کنند، یا موقعی که یک وظیفه، به صورت ارادی منجر به یک عمل CPU می‌شود، یا در وقفه‌های سخت‌افزاری، یا موقعی که زمان‌بند سیستم‌عامل می‌فهمد که یک پردازه، زمان عادلانه اشتراک CPU را منقضی کرده‌است (مثلا با زمان‌بند کاملاً عادلانه در هسته لینوکس).

یک حالت معمول چندوظیفگی، روش اشتراک زمانی CPU است، که روشی برای درهم‌گذاری اجرای فرایندها و ریسه‌های کاربر، و حتی وظایف مستقل هسته است، اگرچه ویژگی در آخر ذکر شده، تنها در هسته‌های پیش‌اجرا، مثل لینوکس، قابل انجام است. پیش‌اجرایی یک اثرجانبی مهم برای «پردازه‌های تعاملی دارای اولویت بالاتر نسبت به پردازه‌های وابسته با CPU» دارد، از این رو به کاربران، به صورت فوری (در موقع اعمال ساده‌ای مثل فشار یک کلید یا حرکت ماوس) منابع رایانشی داده می‌شود. بعلاوه، به برنامه‌های کاربردی (مثل اجرای ویدیو و موسیقی) یک نوع اولویت بلادرنگ داده می‌شود، که در نتیجه آن هر فرایند با اولویت پایین‌تر را پیش‌اجرا می‌کند. در سامانه‌های اشتراک-زمانی، تعویض زمینه آن‌قدر سریع انجام می‌شود، که آن را مثل موقعی می‌کند که چندین پردازه به صورت همزمان روی تنها یک پردازنده اجرا می‌شوند. به اجرای همزمان چندین پردازه، همروندی گفته می‌شود.

به دلایل امنیتی و اطمینان‌پذیری، بیشتر سیستم‌عامل‌های جدید، از ارتباطات مستقیم بین پردازه‌های مستقل جلوگیری می‌کنند، که این موضوع باعث ایجاد قابلیت ارتباطی موکداً واسط‌دار و کنترل‌شده بین پردازه‌ها می‌شود.

هر فرایند دارای فضای آدرس مخصوص به خود است. فضای آدرس، یک لیست از مکان‌های حافظه از یک حداقل تا یک حداکثر است که فرایند می‌تواند از آن فضا بخواند یا در آن بنویسد. فضای آدرس شامل برنامه اجرایی، داده‌های برنامه و پشته آن است. همچنین هر فرایند برای خودش دارای یک مجموعه از رجیسترها است که شامل شمارنده، اشاره گر پشته و دیگر رجیسترهای سخت‌افزاری و نیز اطلاعات متنوع دیگری که برای اجرای برنامه مورد نیاز است می‌باشد. پردازش یک برنامه کامپیوتر که اجرای ان شروع شده‌است شامل کد برنامه و فعالیت‌های جاری است. پردازش می‌تواند از چند بخش کوچک در حال اجرا تشکیل شده باشد. برنامه‌های کامپیوتر مجموعه‌ای از دستورالعمل‌های غیرفعال است. پردازش یک اجرای واقعی از دستور العمل‌های برنامه است.

وضعیت‌های فرایند

  • در حال اجرا: فرایند توسط پردازنده در حال اجراست.
  • آماده: حالتی است که فرایند حافظه مخصوص به خود دارد و برای اجرا آماده‌است.
  • در حال انتظار: به دلیل یک فراخوان سیستمی مانند وقفه دستگاه‌های ورودی-خروجی یا تمام شدن زمان اختصاص داده شده به فرایند، سیستم‌عامل پردازنده را از فرایند می‌گیرد، آن را به حالت انتظار برده و پردازنده را به فرایند دیگری می‌دهد.
  • در حال انتظار و معلق: چنانچه فرایند در وضعیت در حال انتظار باشد و سیستم‌عامل با مشکل کمبود حافظه مواجه شود، اطلاعات فرایند به دیسک منتقل شده و وضعیت فرایند به در حال انتظار و معلق تغییر می‌یابد. سپس فضای فرایند در حافظه اصلی آزاد می‌گردد.
  • آماده و معلق: چنانچه فرایند در وضعیت در حال انتظار و معلق باشد و بتواند به وضعیت آماده برود، اما همچنان فضای کافی موجود نباشد، سیستم‌عامل وضعیت آن را به آماده و معلق تغییر می‌دهد. در این حالت، فرایند همچنان روی دیسک باقی می‌ماند، ولی آماده اجرا است.
  • پایان یافته: وضعیتی است که پردازش فرایند به‌طور کامل انجام شده باشد و از سیستم بیرون برود.

پانویس

  1. «واژه‌نامه مرجع برای ترجمه محیط لینوکس» (PDF). شورای عالی انفورماتیک. بایگانی‌شده از اصلی (PDF) در ۱۲ ژانویه ۲۰۱۲. دریافت‌شده در ۲۷ دسامبر ۲۰۱۱.
  2. Silberschatz, Abraham; Cagne, Greg; Galvin, Peter Baer (2004). "Chapter 4. Processes". Operating system concepts with Java (Sixth ed.). John Wiley & Sons. ISBN 0-471-48905-0.
  3. Vahalia, Uresh (1996). "Chapter 2. The Process and the Kernel". UNIX Internals: The New Frontiers. Prentice-Hall Inc. ISBN 0-13-101908-2.

منابع