إدارة الذاكرة

إدارة الذاكرة (بالإنجليزية: Memory management) هي عملية إستغلال ذاكرة الحاسوب بشكل أمثل بحيث يمكن الإستفادة من كل جزء من هذه الذاكرة دون إهدار أو تعطيل لهذه الأجزاء وبذلك يمكن تشغيل أكبر عدد ممكن من البرامج في آن واحد.

عتاد إدارة الذاكرة

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

مثال عددي

إن المثال العددي يمكن أن يوضح الفكرة في عملية (MMU) وحدة إدارة الذاكرة. (20) خانة الثنائية التالية الموضحة في الشكل :
إن رقم المقطع يحدد من قبل 4 بتات والتي تحدد بدورها 1 بت من 16 مقطع محتمل إن 8 بتات ممكن أن تحدد حوالي 256 صفحة وحقل الكلمة ذات ال8 بت يفرض صفحة ذات حجم 256 كلمة هذه الإعدادات تسمح لكل مقطع بأن يمتلك أي عدد من الصفحات حتى 256 إن المقطع المحتمل الأصغري سوف يمتلك صفحة واحدة ب256 كلمة والاحتمال الأكبر للمقطع سوف يمتلك 256 صفحة بمعدل كلمات كلي : 256 *256 = 64K كلمة.
الذاكرة الفيزيائية الموضحة في الشكل :
تتألف من 220 كلمة ب 32 خانة لكل منه، إن عنوان 20 خانة يقسم إلى حقلين: حقل 12 خانة وحقل 8 خانات وبالتالي الذاكرة الفيزيائية تقسم إلى 4096 بلوك ب256 كلمة لكل منها والصفحة في العنوان المنطقي تملك بلوك مقابل في الذاكرة الفيزيائية.
لنلاحظ أن كل من العنوان الفيزيائي والمنطقي يحتويان 20 خانة في حال غياب وحدة إدارة الذاكرة فإن العنوان ذا ال20 خانة من الCPU يمكن أن يستخدم للوصول للذاكرة الفيزيائية مباشرة.
لنعتبر برنامج محمل في الذاكرة الذي يتطلب خمس صفحات إن نظام التشغيل يمكن أن يسند لهذا البرنامج المقطع 6 وصفحات من 0 وحتى 4 كما هو في الشكل
إن مجال العنوان المنطقي الكلي من أجل البرنامج هو من 6000H إلى H(604FF).
عندما يحمل البرنامج إلى الذاكرة الفيزيائية فإنه يتوزع بين 5بلوكات في الذاكرة الفيزيائية حيث يجد نظام التشغيل مكانا فارغا.
التجاوب بين كل بلوك ذاكري ورقم صفحة منطقي يتم عندها إدخاله في الجدول.
المعلومات من هذا الجدول يتم إدخالها في مقطع وجداول الصفحة كما هو في الشكل:
الآن لنعتبر العنوان الفيزيائي المعطى في الشكل:
إن العنوان ذا ال20 خانة يجدول كرقم ب 5 خانات ست عشرية وهو يشير لرقم صفحة 7E من الصفحة 2 في المقطع 6 وإن قاعدة المقطع 6 في جدول الصفحة هي في العنوان 35 وهكذا نلاحظ أن المقطع 6 قد تم ربطه ب5 صفحات من العنوان 35 إلى العنوان 39 والصفحة 2 في المقطع 6 هي في العنوان 35+2 أي في 37 وهو عنوان البلوك الذاكري الموجود في جدول الصفحة سيكون 019.
الكلمة 7E في البلوك 19 تعطي ال20 خانة لعنوان الفيزيائي 0197E نلاحظ بأنه الصفحة 0 للمقطع 6 تطابق البلوك 12 والصفحة 1 تطابق البلوك 0 والذاكرة المترابطة التي تظهر في الشكل 24ب تظهر أن الصفحات 2 و 4 للمقطع 6 تم الربط لهما مسبقا وبالتالي رقم البلوك المتجاوب يخزن في الذاكرة الترابطية 
وهكذا نلاحظ أن MMU أدى الوظيفة المطلوبة منه وهو مطابقة أي رقم من الصفحات لكل مقطع.