چندکارگی (رایانه)
From Wikipedia, the free encyclopedia
در علوم کامپیوتر و رایانش، چند وظیفگی، اجرای همزمان چندین کار یا فرآیند در مدت زمان مشخص است. وظایف جدید میتوانند کارهایی را که قبلاً شروع شدهاند، قبل از پایان کار قطع کنند؛ به جای اینکه منتظر بمانند تا پایان یابد. در نتیجه، رایانه بخشهایی از چندین وظیفه را به روشی پخته شده اجرا میکند؛ در حالی که وظایف منابع پردازشی مشترک مانند واحدهای پردازش مرکزی (CPU) و حافظه اصلی را به اشتراک میگذارند. ویژگی چند وظیفگی به طور خودکار برنامه در حال اجرا را قطع میکند، حالت آن را ذخیره میکند (نتایج جزئی، محتویات حافظه و محتویات ثباتهای رایانه) و حالت ذخیره شده برنامه دیگری را بارگیری میکند و کنترل را به آن منتقل میکند. این «تغییر زمینه» ممکن است در فواصل زمانی مشخص (چند وظیفگی پیشگیرانه) شروع شود، یا برنامه در حال اجرا کدگذاری شود تا هنگام قطع شدن آن به نرم افزار نظارتی سیگنال داده شود (چند وظیفگی مشارکتی).
چند وظیفگی به طور همزمان به انجام همزمان چندین کار احتیاج ندارد. در عوض، به بیش از یک کار اجازه میدهد تا در یک دوره زمانی مشخص پیش بروند. حتی در رایانههای چند پردازندهای، چند وظیفگی اجازه میدهد کارهای بیشتری نسبت به پردازندههای مرکزی انجام شود.
چند وظیفگی از ویژگیهای رایج سیستمعاملهای رایانه است. این ویژگی اجازه میدهد تا استفاده کارآمدتر از سختافزار کامپیوتر انجام گیرد و زمانی که یک برنامه منتظر برخی از رویدادهای خارجی مانند ورودی کاربر یا انتقال ورودی/خروجی با یک وسیله جانبی برای تکمیل است، پردازنده مرکزی میتواند با برنامه دیگری استفاده شود. در یک سیستم به اشتراک گذاری زمان، چندین اپراتور انسانی از پردازنده یکسانی استفاده میکنند که گویی به استفاده آنها اختصاص یافته است؛ در حالی که در پشت صحنه رایانه با انجام چند وظیفگی برنامههای شخصی خود، در حال خدمترسانی به بسیاری از کاربران است. در سیستمهای چندوظیفگی در رایانه، یک کار تا زمانی اجرا میشود که باید منتظر یک رویداد خارجی باشد یا اینکه زمانبندی (رایانش) سیستم عامل به زور وظیفه در حال اجرا را از CPU خارج کند. سیستمهای بیدرنگ مانند آنهایی که برای کنترل رباتهای صنعتی طراحی شدهاند، به پردازش به موقع نیاز دارند. ممکن است یک پردازنده واحد بین محاسبات حرکت ماشین، ارتباطات و رابط کاربری به اشتراک گذاشته شود.[1]
غالباً سیستمعاملهای چند وظیفهای اقداماتی را برای تغییر اولویت کارهای فردی در نظر گرفته اند، به طوری که برای کارهای مهمتر نسبت به کارهایی که اهمیت کمتری دارند، زمان بیشتری برای استفاده از پردازنده اختصاص مییابد. بسته به سیستم عامل، یک کار ممکن است به اندازه کل برنامه کاربردی بزرگ باشد، یا ممکن است از ریسمان (رایانش)های کوچکتر تشکیل شده باشد که قسمتهای کلی برنامه را انجام میدهد.
پردازندهای که برای استفاده با سیستمعاملهای چند وظیفهای در نظر گرفته شده است، ممکن است شامل سختافزار ویژهای برای پشتیبانی ایمن از چندین کار مانند حفاظت از حافظه و حلقه حفاظتی باشد که اطمینان حاصل میکند نرم افزار نظارتی توسط خطاهای برنامه حالت کاربر آسیب نمیبیند یا برانداز میشود.
اصطلاح «چند وظیفگی» به یک اصطلاح بین المللی تبدیل شده است، زیرا همان کلمه در بسیاری از زبانهای دیگر مانند آلمانی، ایتالیایی، هلندی، دانمارکی و نروژی نیز استفاده میشود.