إدارة الذاكرة في نظام التشغيل: الذاكرة المتجاورة، ذاكرة التبديلpingالتجزئة

⚡ ملخص ذكي

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

  • 🧠 فريف: إدارة الذاكرة تُخصّص و tracوحدات ذاكرة ks لتشغيل البرامج لتحقيق أقصى قدر من الأداء.
  • 🗂️ تقنية: تُدير عمليات تخصيص الذاكرة المتجاورة الفردية، والمجزأة، والمقسمة إلى صفحات، والمجزأة، الذاكرة بشكل مختلف.
  • 🔄 مبادلةping: تنتقل العمليات مؤقتًا بين الذاكرة الرئيسية ومخزن البيانات الاحتياطي لتعزيز تعدد البرامج.
  • 📑 التصفح مقابل التجزئة: يستخدم الترحيل إطارات ذات حجم ثابت؛ بينما يستخدم التجزئة مقاطع ذات أطوال متغيرة.
  • 🧩 تجزئة: يؤدي التجزئة الداخلية والخارجية إلى إهدار الذاكرة في كتل صغيرة غير قابلة للاستخدام.
  • 🔗 جارٍ التحميل والربط: يؤدي التحميل والربط الديناميكي إلى توفير الذاكرة عن طريق تحميل الإجراءات فقط عند الحاجة.

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

ما هي إدارة الذاكرة؟

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

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

لماذا استخدام إدارة الذاكرة؟

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

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

تقنيات إدارة الذاكرة

فيما يلي بعض أهم تقنيات إدارة الذاكرة:

التخصيص المتجاور الفردي

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

التخصيص المقسم

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

إدارة الذاكرة المقسمة إلى صفحات

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

إدارة الذاكرة المجزأة

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

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

ما هو التبادل؟ping?

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

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

مبادلةping

فوائد المبادلةping

فيما يلي أهم فوائد/مزايا عملية الاستبدالping:

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

ما هو تخصيص الذاكرة؟

تخصيص الذاكرة هو عملية يتم من خلالها تخصيص ذاكرة أو مساحة لبرامج الكمبيوتر.

هنا، تنقسم الذاكرة الرئيسية إلى نوعين من الأقسام:

  1. ذاكرة منخفضة - و Operaنظام تينغ يتواجد في هذا النوع من الذاكرة.
  2. ذاكرة عالية – يتم الاحتفاظ بعمليات المستخدم في ذاكرة عالية.

تخصيص التقسيم

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

فيما يلي مخططات تخصيص الأقسام المختلفة:

  • المقاس الأول: في هذا النوع من التوافق، يتم تخصيص القسم الذي يمثل أول كتلة كافية من بداية الذاكرة الرئيسية.
  • أفضل ملاءمة: يقوم بتخصيص العملية للقسم الذي يمثل أصغر قسم كافٍ من بين الأقسام الحرة.
  • أسوأ ملائمة: يقوم بتخصيص العملية للقسم الذي يمثل أكبر قسم متاح بحرية وكافية في الذاكرة الرئيسية.
  • الملاءمة التالية: وهي تشبه إلى حد كبير طريقة First Fit، ولكن هذه الطريقة تبحث عن أول قسم كافٍ من نقطة التخصيص الأخيرة.

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

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

ما هو التجزئة؟

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

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

هناك نوعان من أساليب التجزئة هما:

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

ما هو التقسيم؟

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

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

ما هو التحميل الديناميكي؟

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

ما هو الارتباط الديناميكي؟

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

الفرق بين التحميل الثابت والديناميكي

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

الفرق بين الارتباط الثابت والديناميكي

فيما يلي الفروقات الرئيسية بين الربط الثابت والربط الديناميكي:

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

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

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

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

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

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

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

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