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