تعویض زمینه

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

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

عبارت «برگردان زمینه»، می‌تواند اشاره به برگردان زمینه یک ثبات باشد، یا برگردان زمینه یک وظیفه باشد، یا برگردان زمینه یک قاب پشته باشد و یا برگردان زمینه یک ریسه باشد.

زمان و نحوه انجام[ویرایش]

چندوظیفه‌ای[ویرایش]

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


منابع[ویرایش]