مرجع
آخر الزيارات

تبديل السياق

660 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: في الحوسبة، يكون تبديل السياق هو عملية تخزين حالة عملية أو شريط التعليمات، بحيث يمكن استعادته واستئناف تنفيذه من نفس النقطة في وقت لاحق. تتناول المقالة 6 أقسام، منها «الأداء»، «الخطوات» و«تعدد المهام».
المحتويات
  1. الأداء
  2. الخطوات
  3. تعدد المهام
  4. عندما يكون الانتقال بين وضع النواة ووضع
  5. التكلفة
  6. Context Switching at OSDev.org

تعريفًا بالموضوع، في الحوسبة، يكون تبديل السياق هو عملية تخزين حالة عملية أو شريط التعليمات، بحيث يمكن استعادته واستئناف تنفيذه من نفس النقطة في وقت لاحق. يتيح ذلك عمليات متعددة مشاركة وحدة معالجة مركزية واحدة، وهي ميزة أساسية لنظام تشغيل متعدد المهام. ونتناول فيما يلي مزيدًا من التفاصيل.

من جهة ثانية، يختلف المعنى الدقيق لعبارة «تبديل السياق» إلى حدّ كبير في الاستخدام. في سياق تعدد المهام، تبديل السياق يشير إلى عملية تخزين حالة النظام لمهمة واحدة، بحيث يمكن إيقاف المهمة مؤقتًا واستئناف مهمة أخرى. يمكن كذلك أن يحدث تبديل السياق كنتيجة للمقاطعة، مثال عندما تحتاج مهمة ما إلى الوصول إلى مخزن القرص، مما يؤدي إلى توفير وقت وحدة المعالجة المركزية لعمل المهام الأخرى. تتطلب بعض أنظمة التشغيل كذلك تبديل السياق للتنقل بين وضع المستعمل ومهام وضع النواة (kernel)

من جانب آخر، . يمكن أن يكون لعملية تبديل السياق تأثير سلبي على أداء النظام، على الرغم من أن حجم هذا التأثير يعتمد على طبيعة التحويل الذي يتم تنفيذه.

الأداء

إضافةً إلى ذلك، إن تبديل السياق نفسه له تكلفة في الأداء، بسبب تشغيل جدولة المهام، وإحالة TLB ، وبسبب غير مباشر مشاركة ذاكرة التخزين المؤقت لوحدة المعالجة المركزية بين مهام متعددة. يمكن أن يكون التبديل بين الخيوط حاسوبية للعمليات في عملية واحدة أسرع من بين عمليتين منفصلتين، لأن الخيوط حاسوبية تتشارك في نفس خرائط الذاكرة افتراضية ، لذا لا يكون تدفق TLB ضروريًا.

روابط خارجية

المراجع

الخطوات

كذلك، قد يتم تخزين كتلة التحكم بالعملية على مكدس لكل عملية في ذاكرة النواة (بدلاً من مكدس الاستدعاءات الخاص بوضع المستعمل) . تتم إضافة مقبض إلى كتلة التحكم بالعملية إلى قائمة انتظار العمليات الجاهزة للتشغيل، غالباً ما تسمى قائمة انتظار الجاهزة.

في هذا الإطار، في التبديل، يجب حفظ حالة العملية التي يتم تنفيذها في الوقت الحالي بطريقة أو بأخرى، بحيث يمكن استعادة هذه الحالة عند إعادة جدولتها.

ومن ناحية أخرى، تتضمن حالة العملية كافة السجلات التي قد تستعملها العملية، وخاصةً عداد البرنامج، إلى جانب أية بيانات أخرى خاصة بنظام التشغيل قد تكون ضرورية. يتم تخزين هذا عادة في بنية بيانات تسمى كتلة التحكم بالعملية (PCB)

من جهة ثانية، بما أن نظام التشغيل قد قام بتعليق تنفيذ عملية واحدة، فإنه يمكن عندئذٍ تبديل السياق عن طريق اختيار عملية من قائمة الانتظار الجاهزة واستعادة كتلة التحكم بالعملية الخاص به. عند القيام بذلك، يتم تحميل عداد البرنامج من كتلة التحكم بالعملية، وبالتالي يمكن أن يستمر التنفيذ في العملية المختارة. يمكن أن تؤثر أولوية المعالجة والخيط الحاسوبي على العملية التي يتم اختيارها من قائمة الانتظار الجاهزة (أي أنها قد تكون قائمة انتظار ذات أولوية).

تعدد المهام

التبديل بين وضع المستعمل والنواة

إضافةً إلى ذلك، الأكثر شيوعًا، في بعض مخطط الجدولة ، يجب إيقاف عملية واحدة من وحدة المعالجة المركزية بحيث يمكن تشغيل عملية أخرى. يمكن تشغيل عملية تبديل السياق من خلال عملية تجعل نفسها غير قابلة للتشغيل، مثل انتظار عملية وحدات الإدخال والإخراج (I/O) أو عملية التزامن لإكمالها. في نظام  تعدد المهام الوقائي، قد يقوم المجدول كذلك بتحويل العمليات التي لا تزال قابلة للتشغيل. لمنع عمليات أخرى من التجويع من وقت وحدة المعالجة المركزية (CPU) ، غالباً ما تقوم المجدولون الوقائيون بتكوين جهاز توقيت للمقاطعة لإطلاق النار عندما تتجاوز إحدى العمليات شريحة الوقت الخاصة بها. تضمن هذه المقاطعة أن يقوم المجدول بالتحكم في أداء مفتاح تبديل السياق.

عندما يكون الانتقال بين وضع النواة ووضع

ومن جهة أخرى، المستعمل مطلوبًا في نظام التشغيل ، لا يكون تبديل السياق ضروريًا؛ انتقال الوضع ليس في حد ذاته تبديل السياق. ومع ذلك، اعتمادًا على نظام التشغيل، قد يتم كذلك إجراء تبديل السياق في هذا الوقت.

التكلفة

متى يحدث التحويل؟

علاوةً على ذلك، عادةً ما تكون محولات السياق مكثّفة من الناحية الحسابية، والكثير من تصميم أنظمة التشغيل يتمثل في تحسين استخدام تبديل السياق. يتطلب التحويل من عملية إلى أخرى قدرًا معينًا من الوقت للقيام بالمهام الإدارية - حفظ وتحميل السجلات وخرائط الذاكرة، وتحديث جداول وقوائم متنوعة، إلخ. ما هو موجود فعلاً في تبديل السياق يختلف بين هذه الحواس وبين المعالجات وأنظمة التشغيل. مثلًا، في نواة لينكس ، يشتمل تبديل السياق على تبديل التسجيلات، مؤشر المكدس، وعداد البرنامج، ولكنه مستقل عن تبديل مساحة العنوان، على الرغم من أنه يحدث كذلك في تبديل عملية تبديل عنوان مساحة.

هناك ثلاثة أسباب محتملة تسبب تبديل السياق:

Context Switching at OSDev.org

  • Context Switch Definition by The Linux Information Project (LINFO)
  • Context Switches from the Microsoft Developer Network (MSDN)
  • General Architecture and Design -Interrupt Handling at FreeBSD.org

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.