طريقة المبادلة لإدارة الذاكرة في نظام التشغيل Swapping in Operating System

اقرأ في هذا المقال


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

ما هي طريقة المبادلة لإدارة الذاكرة Swapping

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

ضع في اعتبارك مثالًا في الوقت الفعلي real-time example

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

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

شرح مبدأ المبادلة Swapping

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

من الناحية المثالية، يقوم مدير الذاكرة بتبديل العمليات بسرعة كبيرة، بحيث تحتوي الذاكرة الرئيسية دائمًا على عمليات جاهزة للتنفيذ، يعتمد تبادل العمليات أيضًا على الجدولة الوقائية القائمة على الأولوية، عندما تصل عملية ذات أولوية أعلى، يقوم مدير الذاكرة بتبديل العملية بأقل أولوية للقرص ويتبادل في العملية بأولوية قصوى في الذاكرة الرئيسية للتنفيذ، عند الانتهاء من العملية ذات الأولوية القصوى، يتم تبديل العملية ذات الأولوية الأقل مرة أخرى في الذاكرة وتستمر في التنفيذ، يُطلق على هذا المتغير من المبادلة اسم مبادلة (roll-out) أو مبادلة (roll-in) أو مبادلة (swap-out swap-in).

هل عندما يتم تبديل العملية واستبدالها مرة أخرى تشغل نفس مساحة الذاكرة التي كانت تشغلها سابقا

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

حتى الآن، تحدثنا عن الذاكرة الرئيسية في سياق المبادلة، الآن، دعونا نناقش ما هو السيناريو في تخزين الدعم أو القرص، يجب أن يحتوي القرص على مساحة كافية لاستيعاب صور العملية المتبادلة لجميع المستخدمين، هناك نوعان من البدائل للاحتفاظ بصور العملية المبادلة على القرص:

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

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

ما مقدار الذاكرة التي يجب تخصيصها لعملية ما أثناء إنشائها أو تبديلها في الذاكرة

الجواب يتوقف على النقطتين التاليتين:

  • ما إذا تمّ إنشاء العملية بحجم ثابت لا يمكن تغييره أبدًا.
  • أو يمكن أن تنمو شريحة بيانات العمليات أثناء التشغيل.

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

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

مزايا وعيوب طريقة المبادلة

مزايا طريقة المبادلة

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

عيوب طريقة المبادلة

  • إذا انقطع نظام الكمبيوتر عن الطاقة، فقد يفقد المستخدم جميع المعلومات المتعلقة بالبرنامج في حالة حدوث نشاط تبديل كبير.
  • إذا لم تكن خوارزمية المبادلة جيدة، يمكن للطريقة المركبة زيادة عدد أخطاء الصفحة وتقليل أداء المعالجة الكلي.

شارك المقالة: