إدارة الذاكرة Memory Management ) )في إطار البرامج المتعددة
مقدمة : برنامج إدارة الذاكرة هو المسؤول عن حجز أماكن للبرامج في الذاكرة وإخلائها بانتهاء البرنامج.
الوظائف: كيفية توزيع البرامج والبيانات في الذاكرة وتعيين الأماكن المناسبة لها. واتخاذ القرارات اللازمة
لإدخال المعلومات وحجز الأماكن ثم تفريغها في الذاكرة، هذه هي وظيفة إدارة الذاكرة أو( Medium Term Scheduler ).
الهدف : الهدف الرئيسي هو استهلاك الذاكرة بفعالية تامة بحيث:
1. تكون أماكن الذاكرة شاغرة بدون مساحات ضائعة.
2. تفادي كثرة التبديلSwapping ) ) أي انتقال المعلومات خارج وداخل الذاكرة ومبادلتها مع الذاكرة الثانوية.
3. تلبية البرامج بحجز أماكن لأكبر عدد من البرامج بطريقة سريعة وفعالة بدون تأخير وحدة المعالجة.
4. حماية الذاكرة أي حماية البرامج والمعلومات في الذاكرة حتى لا تتداخل ببعضها ويحصل تناول أو إدخال لمعلومات
غير مصرح بها. وبالتالي لكل برنامج له عنوان بداية ، وطول معين يلتزم به حدوده ولا يخرج عنها
.
أساسيات ومبادئ: تدخل البرامج الجديدة من الذاكرة الثانوية إلى الذاكرة الرئيسية ويستقبلها مدير الذاكرة
(Medium Term Scheduler) ويعين لها المكان المناسب، وبالتالي تتم عملية الربط وتحويل العناوين من وهمية إلى فعلية.
- يخزن النظام في إطار الذاكرة الرئيسية لكل برنامج عنوان البدء فيBase Register ) ) ،
وطول البرنامج في (limit Register)
- تحصل عملية التحويل أو الربط (Binding) بين العناوين العملية أو المنطقية(Virtual/Logical )
إلى عناوين فعلية (physical)
تلتزم بها في ثلاث مراحل:
1- المرحلة الأولى: وقت التجميع أي وقت تأليف البرامج من المصدر(Source) إلى (Object Code) رموز ذاتية ،
فإذا كان عنوان البرنامج في الذاكرة معروف من قبل ممكن تكوين للبرنامج الرمز الثابت له بالعناوين الثابتة في الذاكرة .
2- المرحلة الثانية: وقت تحويل الأماكن إذا كان عنوان البرنامج غير معروف في الذاكرة ، يكون النظام للبرنامج الرمز
المتنقل وهو أكثر مرونة.
3- المرحلة الثالثة: وقت التنفيذ يمكن تأخير عملية الربط إن أمكن نقل البرنامج في الذاكرة خلال التنفيذ ، مثلاً حصل عملية
- بعد عملية الربط( Binding ) يستعين نظام إدارة الذاكرة بقائمة التحويلات والربط بين العناوين العملية للبرنامج الجديد الآتي
في الذاكرة الثانوية والعناوين الفعلية.
- خلال تنفيذ البرنامج تتعامل وحدة المعالجة مع العناوين العملية ، فعند الطلب تستقبل وحدة التدبير للذاكرة(MMU) وهي
(Hardware) وليست برنامج لتحول العنوان المطلوب في وحدة تامعالجة المركزية( CPU )إلى عنوان فعلي
لإيجاد مكان المعلومة في الذاكرة.
عنوان فعلي = رقم الصفحة( segment number)× حجم الصفحة( page size)+ الطول(offset)
|
- متى تتم عملية التحويل أو إدخال البرنامج من مكانه العملي إلى مكانه الفعلي في الذاكرة؟
- وقت استدعاؤه من وحدة المعالجة أي التحميل الديناميكي (Dynamic Loading )
الاتصال بالبرنامج باستخدام رمز صغير( Stub )للاتصال بـمكتبه (Library ) لتنفيذ الأمر ، ويعين (Stub )نفسه هذا النظام
يعرف بالمكتبه المشتركة ، وبالتالي تحصل عملية الإستبدالSwapping) )وهو الانتقال المؤقت ثم إعادة التشغيل.
تقسيم الذاكرة:
أولاً : تحجز قاطع (Segment) للنظام الـ Kernel لأول أماكن.
ثانياً: لكل برنامج قاطع آخر له بداية (Base) وطول أو حد (Limit) يحدد نظام Memory حسب تدبير معين، ويقرر ما هو
المكان الأفضل.
تدبير الأحسن مقاس أو حيز( Best Fit ):
1- يحجز النظام على حسب مقاس البرنامج محل في الذاكرة على أساس أصغر مكان خالي(Hole) أي يترك
أقل مساحة صغيرة ممكنة بين البرنامج وبالتالي يجب أن يفحص (Scan) كل الذاكرة فهو بطيء.
2- تدبير الأسوأ مقاسWorst Fit) ): يحجز النظام محل على أساس أكبر مكان خالي ( Hole) بين البرامج. وبالتالي يجب
فحص كل الذاكرة بطيء.
3- تدبير الأول مقاس أو حيز (First Fit):وهو أسرع تدبير ولا يفحص كل الذاكرة ويحجز أول مكان خالي في الذاكرة
المراجع operating system consept
willim stalling
wikipedia
Comments (0)
You don't have permission to comment on this page.