تبديل السياق هو أسلوب أو طريقة يستخدمها نظام التشغيل لتبديل عملية من حالة إلى أخرى لتنفيذ وظيفتها باستخدام وحدات المعالجة المركزية في النظام. عند تبديل الأداء في النظام، فإنه يقوم بتخزين حالة العملية القديمة قيد التشغيل في شكل سجلات ويقوم بتعيين وحدة المعالجة المركزية لعملية جديدة لتنفيذ مهامها. أثناء تشغيل عملية جديدة في النظام، يجب أن تنتظر العملية السابقة في قائمة انتظار جاهزة. يبدأ تنفيذ العملية القديمة عند تلك النقطة حيث أوقفتها عملية أخرى. وهو يحدد خصائص نظام التشغيل متعدد المهام حيث تشترك عمليات متعددة في نفس وحدة المعالجة المركزية لأداء مهام متعددة دون الحاجة إلى معالجات إضافية في النظام.
الحاجة إلى تبديل السياق
يساعد تبديل السياق على مشاركة وحدة معالجة مركزية واحدة عبر جميع العمليات لإكمال تنفيذها وتخزين حالة مهام النظام. عند إعادة تحميل العملية في النظام، يبدأ تنفيذ العملية من نفس النقطة التي يوجد فيها التعارض.
فيما يلي الأسباب التي توضح الحاجة إلى تبديل السياق في نظام التشغيل.
- إن تحويل عملية إلى عملية أخرى لا يتم بشكل مباشر في النظام. يساعد تبديل السياق نظام التشغيل على التبديل بين العمليات المتعددة لاستخدام موارد وحدة المعالجة المركزية لإنجاز مهامه وتخزين سياقه. يمكننا استئناف خدمة العملية في نفس النقطة لاحقًا. إذا لم نقم بتخزين بيانات أو سياق العملية الجارية حاليًا، فقد يتم فقدان البيانات المخزنة أثناء التبديل بين العمليات.
- إذا وقعت عملية ذات أولوية عالية في قائمة الانتظار الجاهزة، فسيتم إيقاف العملية قيد التشغيل حاليًا أو إيقافها بواسطة عملية ذات أولوية عالية لإكمال مهامها في النظام.
- إذا كانت أي عملية قيد التشغيل تتطلب موارد إدخال/إخراج في النظام، فسيتم تبديل العملية الحالية بعملية أخرى لاستخدام وحدات المعالجة المركزية (CPUs). وعندما يتم استيفاء متطلبات الإدخال/الإخراج، تنتقل العملية القديمة إلى حالة الاستعداد لانتظار تنفيذها في وحدة المعالجة المركزية. يقوم تبديل السياق بتخزين حالة العملية لاستئناف مهامها في نظام التشغيل. وبخلاف ذلك، تحتاج العملية إلى إعادة تشغيل تنفيذها من مستوى الأحرف الأولى.
- في حالة حدوث أي مقاطعات أثناء تشغيل عملية في نظام التشغيل، يتم حفظ حالة العملية كسجلات باستخدام تبديل السياق. بعد حل المقاطعات، تتحول العملية من حالة الانتظار إلى حالة الاستعداد لاستئناف تنفيذها في نفس النقطة لاحقًا، حيث تحدث مقاطعة نظام التشغيل.
- يسمح تبديل السياق لوحدة معالجة مركزية واحدة بمعالجة طلبات العمليات المتعددة في وقت واحد دون الحاجة إلى أي معالجات إضافية.
مثال على تبديل السياق
لنفترض أنه تم تخزين عمليات متعددة في كتلة التحكم في العمليات (PCB). إحدى العمليات هي حالة التشغيل لتنفيذ مهمتها باستخدام وحدات المعالجة المركزية (CPUs). أثناء تشغيل العملية، تصل عملية أخرى إلى قائمة الانتظار الجاهزة، والتي لها أولوية عالية في إكمال مهمتها باستخدام وحدة المعالجة المركزية. استخدمنا هنا تبديل السياق الذي يقوم بتبديل العملية الحالية مع العملية الجديدة التي تتطلب من وحدة المعالجة المركزية إنهاء مهامها. أثناء تبديل العملية، يقوم تبديل السياق بحفظ حالة العملية القديمة في السجلات. عندما يتم إعادة تحميل العملية في وحدة المعالجة المركزية، يبدأ تنفيذ العملية عندما توقف العملية الجديدة العملية القديمة. إذا لم نحفظ حالة العملية، علينا أن نبدأ تنفيذها على المستوى الأولي. وبهذه الطريقة، يساعد تبديل السياق نظام التشغيل على التبديل بين العمليات أو تخزين العملية أو إعادة تحميلها عندما تتطلب تنفيذ مهامها.
مشغلات تبديل السياق
فيما يلي الأنواع الثلاثة لمشغلات تبديل السياق على النحو التالي.
- يقاطع
- تعدد المهام
- تبديل النواة/المستخدم
يقاطع : تطلب وحدة المعالجة المركزية قراءة البيانات من القرص، وإذا كانت هناك أية مقاطعات، فإن تبديل السياق تلقائيًا يقوم بتبديل جزء من الجهاز الذي يتطلب وقتًا أقل للتعامل مع المقاطعات.
تعدد المهام : تبديل السياق هو خاصية تعدد المهام التي تسمح بتبديل العملية من وحدة المعالجة المركزية بحيث يمكن تشغيل عملية أخرى. عند تبديل العملية، يتم حفظ الحالة القديمة لاستئناف تنفيذ العملية في نفس النقطة في النظام.
تبديل النواة/المستخدم : يتم استخدامه في أنظمة التشغيل عند التبديل بين وضع المستخدم، ويتم تنفيذ وضع kernel/user.
ما هو ثنائي الفينيل متعدد الكلور؟
إن PCB (كتلة التحكم في العملية) عبارة عن بنية بيانات تستخدم في نظام التشغيل لتخزين كافة المعلومات المتعلقة بالبيانات الخاصة بالعملية. على سبيل المثال، عند إنشاء عملية في نظام التشغيل، يتم تحديث معلومات العملية، وتبديل معلومات العملية، وإنهاء العملية في PCB.
خطوات تبديل السياق
هناك عدة خطوات تتضمن تبديل سياق العمليات. يمثل الرسم البياني التالي تبديل السياق لعمليتين، P1 إلى P2، عند حدوث مقاطعة أو احتياجات الإدخال/الإخراج أو عملية قائمة على الأولوية في قائمة الانتظار الجاهزة لثنائي الفينيل متعدد الكلور.
كما نرى في الرسم البياني، في البداية، يتم تشغيل عملية P1 على وحدة المعالجة المركزية لتنفيذ مهمتها، وفي الوقت نفسه، تكون عملية أخرى، P2، في حالة الاستعداد. في حالة حدوث خطأ أو انقطاع أو كانت العملية تتطلب الإدخال/الإخراج، تقوم العملية P1 بتبديل حالتها من التشغيل إلى حالة الانتظار. قبل تغيير حالة العملية P1، يقوم تبديل السياق بحفظ سياق العملية P1 في شكل سجلات وعداد البرنامج إلى ثنائي الفينيل متعدد الكلور1 . بعد ذلك، يقوم بتحميل حالة عملية P2 من حالة الاستعداد لملف ثنائي الفينيل متعدد الكلور2 إلى حالة التشغيل.
يتم اتخاذ الخطوات التالية عند تحويل العملية P1 إلى العملية 2:
- أولاً، يحتاج تبديل السياق إلى حفظ حالة العملية P1 في شكل عداد البرنامج والسجلات في PCB (كتلة عداد البرنامج)، التي تكون في حالة التشغيل.
- الآن قم بتحديث PCB1 لمعالجة P1 ونقل العملية إلى قائمة الانتظار المناسبة، مثل قائمة الانتظار الجاهزة وقائمة انتظار الإدخال/الإخراج وقائمة انتظار الانتظار.
- بعد ذلك تدخل عملية أخرى إلى حالة التشغيل، أو يمكننا اختيار عملية جديدة من حالة الاستعداد المراد تنفيذها، أو تكون للعملية أولوية عالية لتنفيذ مهمتها.
- الآن، يتعين علينا تحديث PCB (كتلة التحكم في العمليات) للعملية المحددة P2. يتضمن تبديل حالة العملية من حالة الاستعداد إلى حالة التشغيل أو من حالة أخرى مثل الحظر أو الخروج أو التعليق.
- إذا كانت وحدة المعالجة المركزية تنفذ العملية P2 بالفعل، فسنحتاج إلى الحصول على حالة العملية P2 لاستئناف تنفيذها في نفس النقطة الزمنية التي تحدث فيها مقاطعة النظام.
وبالمثل، يتم إيقاف تشغيل العملية P2 من وحدة المعالجة المركزية حتى تتمكن العملية P1 من استئناف التنفيذ. يتم إعادة تحميل عملية P1 من PCB1 إلى حالة التشغيل لاستئناف مهمتها في نفس النقطة. وبخلاف ذلك، يتم فقدان المعلومات، وعندما يتم تنفيذ العملية مرة أخرى، فإنها تبدأ التنفيذ على المستوى الأولي.