الذاكرة الافتراضية في نظام التشغيل: ما هي، ترحيل الطلب، المزايا

⚡ ملخص ذكي

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

  • 🧠 فريف: تتعامل الذاكرة الافتراضية مع جزء من وحدة التخزين الثانوية كذاكرة رئيسية لتشغيل العمليات الأكبر حجماً.
  • 🎯 لماذا هناك حاجة إلى: يوفر ذاكرة إضافية عندما تكون ذاكرة الوصول العشوائي الفعلية غير كافية، وذلك باستخدام ملف تبديل على القرص.
  • 📥 نظام الاستدعاء عند الطلب: يتم تحميل الصفحات من القرص إلى ذاكرة الوصول العشوائي فقط عند الإشارة إليها فعلياً.
  • 🔁 استبدال الصفحة: تحدد خوارزميات FIFO و Optimal و LRU الصفحة التي يجب إزالتها عند حدوث خطأ في الصفحة.
  • ميزة: يدعم تعدد البرامج ويسمح للبرامج بتجاوز حجم الذاكرة الفعلية.
  • ⚠️ عائق: إنها أبطأ من ذاكرة الوصول العشوائي (RAM) ويمكن أن تقلل من أداء النظام بشكل عام.

الذاكرة الافتراضية في نظام التشغيل

ما هي الذاكرة الافتراضية؟

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

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

لماذا تحتاج الذاكرة الافتراضية؟

فيما يلي أسباب استخدام الذاكرة الافتراضية:

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

كيف تعمل الذاكرة الافتراضية؟

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

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

دعونا نفهم إدارة الذاكرة الافتراضية بمساعدة مثال واحد.

مثلا

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

  • سيقوم نظام التشغيل بعد ذلك بإعداد 250 ميجابايت من الذاكرة الافتراضية واستخدام برنامج يسمى مدير الذاكرة الافتراضية (VMM) لإدارة تلك الـ 250 ميجابايت.
  • لذا، في هذه الحالة، سيقوم برنامج إدارة الأجهزة الافتراضية (VMM) بإنشاء ملف على القرص الصلب بحجم 250 ميجابايت لتخزين الذاكرة الإضافية المطلوبة.
  • سيبدأ نظام التشغيل الآن في معالجة الذاكرة كما لو كان يعتبر 300 ميجابايت من الذاكرة الحقيقية المخزنة في ذاكرة الوصول العشوائي، حتى لو كانت المساحة المتاحة 50 ميجابايت فقط.
  • تتمثل مهمة برنامج إدارة الأجهزة الافتراضية (VMM) في إدارة 300 ميجابايت من الذاكرة حتى لو كانت مساحة الذاكرة الفعلية المتاحة 50 ميجابايت فقط.

ما هو ترحيل الطلب؟

الطلب الاستدعاء

آلية ترحيل الطلب تشبه إلى حد كبير نظام الترحيل مع التبديلping، حيث يتم تخزين العمليات في الذاكرة الثانوية ويتم تحميل الصفحات فقط عند الطلب، وليس مسبقًا.

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

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

أنواع طرق استبدال الصفحة

فيما يلي بعض طرق استبدال الصفحات المهمة:

  • FIFO
  • الخوارزمية المثلى
  • استبدال صفحة LRU

استبدال صفحة FIFO

FIFO (أولاً ما يدخل أولاً يخرج أولاً) هي طريقة تنفيذ بسيطة. في هذه الطريقة، تحدد الذاكرة الصفحة البديلة التي كانت موجودة في العنوان الظاهري للذاكرة لفترة أطول.

شرح المميزات:

  • عند تحميل أي صفحة جديدة، تُزال الصفحة التي بقيت في الذاكرة لأطول فترة. لذا، يسهل تحديد الصفحة المراد إزالتها، لأن رقم تعريفها يكون دائمًا في بداية مكدس FIFO.
  • يجب اختيار أقدم صفحة في الذاكرة الرئيسية للاستبدال أولاً.

الخوارزمية المثلى

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

شرح المميزات:

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

استبدال صفحة LRU

الاختصار LRU هو اختصار لـ "الصفحة الأقل استخدامًا مؤخرًا". تساعد هذه الطريقة نظام التشغيل على تحديد استخدام الصفحات خلال فترة زمنية قصيرة. يجب تطبيق هذه الخوارزمية من خلال ربط عداد بكل صفحة.

كيف يعمل؟

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

شرح المميزات:

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

معدل الخطأ

معدل الأعطال هو معدل تكرار تعطل نظام أو مكون مصمم. ويُعبر عنه بعدد حالات التعطل لكل وحدة زمنية. ويرمز له بالحرف اليوناني λ (لامدا).

مزايا الذاكرة الافتراضية

فيما يلي مزايا/فوائد استخدام الذاكرة الافتراضية:

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

عيوب الذاكرة الافتراضية

فيما يلي عيوب/سلبيات استخدام الذاكرة الافتراضية:

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

الأسئلة الشائعة

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

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

ذاكرة الوصول العشوائي (RAM) هي وحدة تخزين مادية سريعة تُستخدم لتخزين البيانات النشطة. أما الذاكرة الافتراضية فهي تقنية تُوسّع نطاق ذاكرة الوصول العشوائي باستخدام مساحة القرص كما لو كانت ذاكرة حقيقية. الذاكرة الافتراضية أكبر بكثير ولكنها أبطأ بكثير من ذاكرة الوصول العشوائي الحقيقية.

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

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

تلخيص هذه التدوينة بـ: