ادارة الذاكرة
من ويكيبيديا، الموسوعة الحرة
MEMORY MANAGEMENT
HARDWARE
عتاد إدارة الذاكرة:
MMU
في بيئة تعددية البرمجة حيث يكون العديد من البرامج مستقرة في الذاكرة يصبح من الصروري إزالة البرامج والبيانات على كامل أجزاء الذاكرة ليترك مساحة من الذاكرة للاستخدام من خلال برنامج معطى، وكذلك لمنع البرنامج من التغيير في برامج أخرى. • الطلب على ذاكرة الكمبيوتر للتعامل مع تعددية البرمجية قد خلق ضرورة نظم إدارة الذاكرة. • إن نظام إدارة الذاكرة عبارة عن مجموع الإجراءات العتادية و البرمجية لإدارة البرامج المتنوعة المستقرة في الذاكرة. • إدارة الذاكرة البرمجي عبارة عن قسم من مجمل نظم التشغيل المتوفر في معظم الحواسب. • نحن هنا الآن مهتمين بالوحدة العتادية المرتبطة مع نظام إدارة الذاكرة • إن العناصر الأساسية لوحدة إدارة الذاكرة هي: 1. وسيلة ما من أجل تخزين ديناميكي الذي يطابق عنوان الذاكرة المنطقية بعنوان ذاكرة فيزيائي 2. استعداد للمشاركة في برامج مشتركة مخزنة في الذاكرة من قبل عدة مستخدمين 3. حماية المعلومات تجاه دخول غير شرعي من المستخدمين ومنع المستخدمين من تغيير وظائف نظام التشغيل • إن النظام الديناميكي بإعادة التوضع عتاديا عبارة عن عملية مطابقة مشابهة لتلك في نظام أخذ الصفحات • إن الصفحة التي عالجنا حجمها المستخدم في الذاكرة الافتراضية تسبب مشاكل محددة وصعوبات نظرا لحجم البرنامج والبنية المنطقية للبرامج. إن من المناسب أكثر أن نقسم لبرامج والبيانات إلى مناطق منطقية تدعى مقاطع والمقطع عبارة عن مجموعة من التوابع وعناصر البيانات المرتبطة منطقيا والتي بدورها تكون مرتبطة ببرنامج ما. المقاطع ممكن أن توجد من قبل مبرمج أو من قبل نظام التشغيل، و أمثلة عن المقاطع: الإجراءات الفرعية، مصفوفة من البيانات ، جدول من الرموز، أو برنامج للمستخدم. المشاركة لبرامج مشتركة عبارة عن مقطع متداخل للأنظمة متعددة البرمجة فعلى سبيل المثال : العديد من المستخدمين يأملون في ترجمة برامج الفورتران لديهم يجب أن يكون لديهم الإمكانية في مشاركة نسخة مشتركة وحيدة بدلا من أن يكون كل مستخدم لديه نسخة مستقلة في الذاكرة. برامج النظام الأخرى الموجودة في الذاكرة تكون أيضا مشاركة من قبل جميع المستخدمين في الأنظمة المتعددة البرمجة بدون الضرورة لامتلاك نسخ متكررة القضية الثالثة في الأنظمة المتعددة البرمجة هي الحماية للبرنامج من تداخلات غير مرغوبة مع غيره إن العنوان المتولد من قبل برنامج متوضع في مقاطع يدعى العنوان المنطقي وهو مماثل تماما لما هو عليه في الذاكرة الافتراضية باستثناء أن مساحة العنوان المنطقي تكون مرتبطة بمقاطع متغيرة الطول بدلا من صفحات ثابتة الطول ووظيفة وحدة إدارة الذاكرة هي مطابقة العنوان المنطقي إلى آخر فيزيائي مشابه لذلك الذي في الذاكرة الافتراضية
المطابقة الصفحية المتموضعة في مقاطع:
قد تم الإشارة حاليا للخصائص في الساحة المنطقية بأنها تستخدم مقاطع متغيرة الطول كل مقطع فيها يسمح له بالتوسع نظرا لمتطلبات البرنامج قيد التنفيذ حاليا، إحدى الطرق لتحديد طول المقطع هو من خلال ربطه مع عدد يمثل عدد مماثل من الصفحات ولمعرفة كيف يتم ذلك لنعتبر العنوان المنطقي الذي يظهر في الشكل :
العنوان المنطقي يقسم إلى ثلاثة حقول: حقل المقطع يحدد رقم المقطع وحقل الصفحة يحدد الصفحة داخل المقطع وحقل الكلمة يعطي الكلمة المحددة داخل الصفحة. إن حقل الصفحة بـ (K) خانة يستطيع تحديد ما يزيد عن 2K صفحة .إن رقم المقطع ممكن أن يكون مرتبطا بصفحة واحدة فقط أو مع عدة صفحات وهكذا فإن طول المقطع سوف يختلف وفقا لرقم الصفحات المسندة له.
-
-
- المطابقة للعنوان المنطقي ليصبح عنوان فيزيائي تتم من خلال جدولين التاليين في الشكل:
-
نلاحظ أن رقم المقطع للعنوان المنطقي يحدد العنوان لجدول المقطع وكل مدخل في جدول المقطع عبارة عن عنوان مؤشر لقاعدة جدول الصفحة والتي بدورها تضاف لرقم الصفحة المعطى في العنوان المنطقي والمجموع يولد عنوان مؤشر لمدخل في جدول الصفحة. والقيمة التي توجد في جدول الصفحة تؤمن رقم البلوك في الذاكرة الفيزيائية والدمج لحقل البلوك مع حقل الكلمة يولد العنوان الفيزيائي المطابق النهائي إن جدولي المطابقة قد يخزنان في ذاكرتين صغيرتين منفصلتين أو في الذاكرة الرئيسية وفي كلا الحالتين فإن مرجعية الذاكرة في CPU سوف تتطلب ثلاث مراحل للتعامل مع الذاكرة الأول جدول المقطع والآخر من جدول الصفحة الثالث من الذاكرة الرئيسية. وهذا بدوره سوف يبطئ النظام بشكل ملاحظ بالمقارنة مع النظام التركيبي والذي يتطلب مرحلة واحدة للوصول إلى الذاكرة. لتجنب الخسارة في السرعة ، فإن ذاكرة ترابطية سريعة تكون مستخدمة لتخزين معظم المداخل المرجعية للجداول المستخدمة حاليا واختصارا تعرف بذاكرة TLB حيث أنه في أول مرة يتم فيها التعامل مع بلوك محدد يتم إدخال قيمته وكذلك المقطع المستجيب وعدد الصفحات كما هو في الشكل: صورة:Abd1.jpg والنتيجة تنقل إلى الذاكرة الترابطية من أجل استخدامات مستقبلية. logic address
مثال عددي:
إن المثال العددي يمكن أن يوضح الفكرة في عملية (MMU) وحدة إدارة الذاكرة . (20) خانة الثنائية التالية الموضحة في الشكل :
segment إن رقم المقطع يحدد من قبل 4 بتات والتي تحدد بدورها 1 بت من 16 مقطع محتمل إن 8 بتات ممكن أن تحدد حوالي 256 صفحة وحقل الكلمة ذات ال8 بت يفرض صفحة ذات حجم 256 كلمة هذه الإعدادات تسمح لكل مقطع بأن يمتلك أي عدد من الصفحات حتى 256 إن المقطع المحتمل الأصغري سوف يمتلك صفحة واحدة ب256 كلمة والاحتمال الأكبر للمقطع سوف يمتلك 256 صفحة بمعدل كلمات كلي : 256 *256 = 64K كلمة.
الذاكرة الفيزيائية الموضحة في الشكل : صورة:Abd4.jpg
تتألف من 220 كلمة ب 32 خانة لكل منه، إن عنوان 20 خانة يقسم إلى حقلين: حقل 12 خانة و حقل 8 خانات وبالتالي الذاكرة الفيزيائية تقسم إلى 4096 بلوك ب256 كلمة لكل منها والصفحة في العنوان المنطقي تملك بلوك مقابل في الذاكرة الفيزيائية.
لنلاحظ أن كل من العنوان الفيزيائي والمنطقي يحتويان 20 خانة في حال غياب وحدة إدارة الذاكرة فإن العنوان ذا ال20 خانة من الCPU يمكن أن يستخدم للوصول للذاكرة الفيزيائية مباشرة . لنعتبر برنامج محمل في الذاكرة الذي يتطلب خمس صفحات إن نظام التشغيل يمكن أن يسند لهذا البرنامج المقطع 6 وصفحات من 0 وحتى 4 كما هو في الشكل: صورة:Abd5.jpg
إن مجال العنوان المنطقي الكلي من أجل البرنامج هو من 6000H إلى H(604FF) . عندما يحمل البرنامج إلى الذاكرة الفيزيائية فإنه يتوزع بين 5بلوكات في الذاكرة الفيزيائية حيث يجد نظام التشغيل مكانا فارغا . التجاوب بين كل بلوك ذاكري ورقم صفحة منطقي يتم عندها إدخاله في الجدول .
المعلومات من هذا الجدول يتم إدخالها في مقطع وجداول الصفحة كما هو في الشكل: صورة:Abd6.jpg
الآن لنعتبر العنوان الفيزيائي المعطى في الشكل: صورة:Abd7.jpg إن العنوان ذا ال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 أدى الوظيفة المطلوبة منه وهو مطابقة أي رقم من الصفحات لكل مقطع .
المراجع :
محاضرات الدكتور :شادي الجندي <جامعة حلب _سوريا> &&& http://www.wikipedia.org/en