CS330 - أنظمة التشغيل
إدارة الذاكرة، ربط العناوين، المبادلة، التصفح والتقسيم
إدارة الذاكرة ضرورية لتعدد البرمجة. يجب على نظام التشغيل:
الذاكرة الرئيسية والمسجلات هما التخزين الوحيد الذي يمكن للمعالج الوصول إليه مباشرة.
إذا فشل التحقق → انتقال إلى نظام التشغيل (خطأ في العنونة)
يجب إحضار البرامج إلى الذاكرة ووضعها ضمن عملية للتنفيذ.
| وقت الربط | الوصف | نوع العنوان | المرونة |
|---|---|---|---|
| وقت الترجمة | إذا كان موقع الذاكرة معروفًا مسبقًا، يمكن إنشاء كود مطلق | عناوين مطلقة | يجب إعادة الترجمة إذا تغير موقع البداية |
| وقت التحميل | المترجم يولد كودًا قابلاً لإعادة التموضع | عناوين قابلة لإعادة التموضع | الربط النهائي يؤجل حتى وقت التحميل |
| وقت التنفيذ | الربط يؤجل حتى وقت التشغيل | عناوين ديناميكية | يمكن للعملية التحرك أثناء التنفيذ |
عنوان منطقي: يولده المعالج؛ يُسمى أيضًا عنوانًا افتراضيًا
عنوان فيزيائي: عنوان تراه وحدة الذاكرة
العناوين المنطقية والفيزيائية متطابقة في مخططات وقت الترجمة ووقت التحميل؛ مختلفة في مخطط وقت التنفيذ
العنوان الفيزيائي = العنوان المنطقي + مسجل إعادة التموضع
برنامج المستخدم يتعامل مع عناوين منطقية؛ لا يرى أبدًا عناوين فيزيائية حقيقية
يمكن مبادلة عملية مؤقتًا خارج الذاكرة إلى تخزين احتياطي ثم إعادتها لمواصلة التنفيذ.
مبادلة خارج / مبادلة داخل
حجم العملية: ١٠٠ ميجابايت
معدل نقل التخزين الاحتياطي: ٥٠ ميجابايت/ثانية
وقت النقل = ١٠٠ / ٥٠ = ٢ ثانية
إجمالي وقت المبادلة (خارج + داخل) = ٤ ثوانٍ
الذاكرة الرئيسية مقسمة إلى قسمين:
تخصيص أول فجوة مناسبة
✓ سريع
✗ قد ينشئ أجزاء صغيرة
تخصيص أصغر فجوة مناسبة
✓ يترك فجوات أكبر
✗ أبطأ، ينشئ أجزاء صغيرة
تخصيص أكبر فجوة
✓ قد يقلل التجزؤ
✗ استخدام ضعيف
ملاحظة: الأول المناسب والأفضل مناسبة بشكل عام أفضل من الأسوأ مناسبة من حيث السرعة واستخدام التخزين
مساحة الذاكرة الإجمالية موجودة لتلبية الطلب، لكنها غير متجاورة
المشكلة: لا يمكن تخصيص ١٥٠ك رغم أن الإجمالي الحر = ١٥٠ك
الحل: الضغط أو التصفح
الذاكرة المخصصة قد تكون أكبر من الذاكرة المطلوبة
مثال: عملية تحتاج ١٨ك، تحصل على كتلة ٢٠ك
يحدث في: مخططات الأقسام الثابتة، التصفح
بوجود N كتلة مخصصة، نصف N أخرى من الكتل ستضيع بسبب التجزؤ الخارجي
ثلث الذاكرة قد يكون غير قابل للاستخدام!
التصفح يسمح لمساحة العنوان الفيزيائي للعملية أن تكون غير متجاورة
ذاكرة مخبئية عتادية صغيرة سريعة البحث تحتوي إدخالات جدول الصفحات
EAT = α × (وقت TLB + وقت ذاكرة) + (١-α) × (وقت TLB + ٢×وقت ذاكرة)
حيث α = نسبة إصابة TLB
مثال: وقت الذاكرة = ١٠٠ns، وقت TLB = ٢٠ns، نسبة الإصابة = ٨٠٪
EAT = ٠.٨٠ × ١٢٠ + ٠.٢٠ × ٢٢٠ = ٩٦ + ٤٤ = ١٤٠ns
| نوع الهيكل | الوصف | الميزة |
|---|---|---|
| هرمي | مستويان أو أكثر من جداول الصفحات | يقلل عبء الذاكرة للمساحات العنوانية المتناثرة |
| مبني على التجزئة | جدول تجزئة بقائمة مرتبطة للتصادمات | جيد للمساحات العنوانية المتناثرة > ٣٢ بت |
| مقلوب | إدخال واحد لكل إطار فيزيائي | يقلل الذاكرة المطلوبة لجداول الصفحات |
بت صالح/غير صالح: يشير إذا كانت الصفحة في مساحة العنوان المنطقي للعملية
مخطط إدارة الذاكرة يدعم رؤية المستخدم للذاكرة
البرنامج هو مجموعة من الأقسام:
| قسم | أساس | حد | وصف |
|---|---|---|---|
| ٠ | ١٤٠٠ | ١٠٠٠ | البرنامج الرئيسي |
| ١ | ٦٣٠٠ | ٤٠٠ | دالة فرعية |
| ٢ | ٤٣٠٠ | ٤٠٠ | مكدس |
| ٣ | ٣٢٠٠ | ١١٠٠ | قسم بيانات |
| ٤ | ٤٧٠٠ | ١٠٠٠ | جدول رموز |
| الخاصية | التصفح | التقسيم |
|---|---|---|
| التقسيم | صفحات ذات حجم ثابت | أقسام ذات حجم متغير |
| رؤية المستخدم | غير مرئي للمبرمج | مرئي للمبرمج |
| تجزؤ خارجي | لا | نعم |
| تجزؤ داخلي | نعم (آخر صفحة) | لا |
| مشاركة | صعبة | سهلة (وحدات منطقية) |
| حماية | مستوى الصفحة | مستوى القسم |
يجمع مزايا كلا المخططين:
يدعم كلاً من التقسيم والتصفح
عنوان منطقي → عنوان خطي (عبر التقسيم) → عنوان فيزيائي (عبر التصفح)
المعطيات: حجم الصفحة = ١كيلوبايت (١٠٢٤ بايت)، عنوان منطقي = ٣٠٨٥
المعطيات: ٢٥٦ صفحة بحجم صفحة ٤كيلوبايت، مرسلة إلى ٦٤ إطارًا
المعطيات: حجم العملية = ٧٢,٧٦٦ بايت، حجم الصفحة = ٢٠٤٨ بايت
س١. أي استراتيجية تخصيص ذاكرة هي الأسرع بشكل عام؟
الإجابة: الأول المناسب (يبحث من البداية ويخصص أول فجوة مناسبة)
س٢. التجزؤ الخارجي يحدث في:
الإجابة: التخصيص المتجاور ذو الحجم المتغير والتقسيم الخالص
س٣. التجزؤ الداخلي يحدث في:
الإجابة: التقسيم الثابت والتصفح الخالص
س٤. TLB تعني:
الإجابة: مخزن الترجمة المؤقت
س٥. قارن بين التصفح والتقسيم من حيث عبء الذاكرة.
الإجابة:
التصفح: يتطلب إدخالًا واحدًا لكل صفحة. للمساحات العنوانية الكبيرة، يمكن أن تكون جداول الصفحات ضخمة.
التقسيم: يتطلب فقط مسجلين لكل قسم (أساس وحد). عبء أقل بكثير.
س٦. لماذا لا تدعم أنظمة تشغيل الجوال مثل iOS و Android المبادلة؟
الإجابة:
س٧. احسب العنوان الفيزيائي للعنوان المنطقي (١، ٥٠٠) في نظام تصفح:
حجم الصفحة = ١٠٢٤ بايت، الصفحة ١ مرسلة إلى الإطار ٦
| المصطلح | التعريف |
|---|---|
| عنوان منطقي | عنوان يولده المعالج؛ عنوان افتراضي |
| عنوان فيزيائي | عنوان تراه وحدة الذاكرة |
| MMU | وحدة إدارة الذاكرة - عتاد لترجمة العناوين |
| صفحة | كتلة ذات حجم ثابت في الذاكرة المنطقية |
| إطار | كتلة ذات حجم ثابت في الذاكرة الفيزيائية |
| جدول صفحات | هيكل بيانات لترجمة الصفحة إلى إطار |
| TLB | مخزن الترجمة المؤقت - ذاكرة مخبئية لجدول الصفحات |
| قسم | وحدة منطقية في رؤية المستخدم (كود، بيانات، مكدس) |
| تجزؤ خارجي | ذاكرة حرة موجودة لكنها غير متجاورة |
| تجزؤ داخلي | ذاكرة مخصصة أكبر من المطلوبة |
| ضغط | خلط الذاكرة لوضع الذاكرة الحرة معًا |
| مبادلة | نقل عملية بين الذاكرة الرئيسية والقرص |
| مسجل أساس | يحمل أصغر عنوان فيزيائي قانوني |
| مسجل حد | يحتوي نطاق العناوين المنطقية |
[إدراج مخطط حماية مسجلات الأساس والحد]
[إدراج مخطط تفاعل TLB وجدول الصفحات]
[إدراج مقارنة مرئية للأول المناسب، الأفضل مناسبة، الأسوأ مناسبة]
[إدراج ترجمة العنوان من منطقي إلى فيزيائي في التقسيم]
ملاحظة: يرجى توفير المخططات الفعلية من مواد المقرر لاستبدال هذه العناصر النائبة.