إدارة الذاكرة (أنظمة التشغيل)
في أنظمة التشغيل ، إدارة الذاكرة هي الوظيفة المسؤولة عن إدارة الذاكرة الأساسية للكمبيوتر . [1] : 105–208
تتبع وظيفة إدارة الذاكرة حالة كل موقع ذاكرة، سواء كان مخصصًا أو خاليًا . وتحدد كيفية تخصيص الذاكرة بين العمليات المتنافسة، وتقرر أي منها يحصل على الذاكرة، ومتى يتلقاها، وكمية الذاكرة المسموح بها. وعندما يتم تخصيص الذاكرة، فإنها تحدد مواقع الذاكرة التي سيتم تعيينها. كما تتعقب وقت تحرير الذاكرة أو عدم تخصيصها وتحديث الحالة.
يختلف هذا عن إدارة ذاكرة التطبيق ، والتي تتعلق بكيفية قيام العملية بإدارة الذاكرة المخصصة لها بواسطة نظام التشغيل.
تقنيات إدارة الذاكرة
تخصيص متجاور واحد
التخصيص الفردي هو أبسط تقنية لإدارة الذاكرة. تكون ذاكرة الكمبيوتر بالكامل، باستثناء جزء صغير مخصص لنظام التشغيل، متاحة لتطبيق واحد. يعد نظام MS-DOS مثالاً على نظام يخصص الذاكرة بهذه الطريقة. قد يستخدم النظام المضمن الذي يقوم بتشغيل تطبيق واحد هذه التقنية أيضًا.
لا يزال بإمكان النظام الذي يستخدم تخصيصًا متجاورًا واحدًا تنفيذ مهام متعددة عن طريق تبديل محتويات الذاكرة للتبديل بين المستخدمين. استخدمت الإصدارات المبكرة من نظام التشغيل MUSIC هذه التقنية.
التخصيص المقسم
يقسم التخصيص المقسم الذاكرة الأساسية إلى أقسام ذاكرة متعددة ، وعادة ما تكون مناطق متجاورة من الذاكرة. قد يحتوي كل قسم على جميع المعلومات الخاصة بمهمة أو وظيفة محددة . تتكون إدارة الذاكرة من تخصيص قسم لمهمة عند بدئها وإلغاء تخصيصه عند انتهاء المهمة.
تتطلب عملية التخصيص المقسم عادةً بعض الدعم المادي لمنع تداخل الوظائف مع بعضها البعض أو مع نظام التشغيل. يستخدم نظام IBM System/360 تقنية القفل والمفتاح . تستخدم سلسلة UNIVAC 1108 و PDP-6 و PDP-10 و GE-600 سجلات أساسية وحدودية للإشارة إلى نطاقات الذاكرة التي يمكن الوصول إليها.
قد تكون الأقسام إما ثابتة ، أي يتم تحديدها عند تحميل البرنامج الأولي (IPL) أو وقت التمهيد ، أو بواسطة مشغل الكمبيوتر ، أو ديناميكية ، أي يتم إنشاؤها تلقائيًا لمهمة معينة. يعد تعدد البرمجة في نظام التشغيل IBM System/360 مع عدد ثابت من المهام (MFT) مثالاً على التقسيم الثابت، والتعدد في البرمجة مع عدد متغير من المهام (MVT) مثالاً على التقسيم الديناميكي. يستخدم تعدد البرمجة مع عدد متغير من المهام وخلفاؤه مصطلح المنطقة للتمييز بين الأقسام الديناميكية والثابتة في الأنظمة الأخرى. [2]
يمكن نقل الأقسام باستخدام السجلات الأساسية، كما هو الحال في سلسلة UNIVAC 1108 وPDP-6 وPDP-10 وGE-600. يمكن ضغط الأقسام القابلة للنقل لتوفير أجزاء أكبر من الذاكرة المادية المتجاورة. يعمل الضغط على نقل مناطق "قيد الاستخدام" من الذاكرة لإزالة "الثغرات" أو المناطق غير المستخدمة من الذاكرة الناتجة عن إنهاء العملية من أجل إنشاء مناطق حرة متجاورة أكبر. [3]
تسمح بعض الأنظمة بتبديل الأقسام إلى وحدة تخزين ثانوية لتحرير ذاكرة إضافية. كانت الإصدارات المبكرة من خيار تقاسم الوقت (TSO) من IBM تستبدل المستخدمين داخل أقسام تقاسم الوقت وخارجها . [4] [أ]
إدارة الذاكرة المقسمة
يقسم التخصيص الصفحي الذاكرة الأساسية للكمبيوتر إلى وحدات ذات حجم ثابت تسمى إطارات الصفحات ، ومساحة العنوان الافتراضية للبرنامج إلى صفحات بنفس الحجم. تقوم وحدة إدارة الذاكرة المادية بربط الصفحات بالإطارات. يمكن تخصيص الذاكرة الفعلية على أساس الصفحة بينما تظهر مساحة العنوان متجاورة.
عادةً، مع إدارة الذاكرة المقسمة، يتم تشغيل كل مهمة في مساحة عنوان خاصة بها. ومع ذلك، هناك بعض أنظمة التشغيل ذات مساحة العنوان الفردية التي تقوم بتشغيل جميع العمليات داخل مساحة عنوان واحدة، مثل IBM i ، الذي يقوم بتشغيل جميع العمليات داخل مساحة عنوان كبيرة، وIBM OS/VS1 و OS/VS2 (SVS) ، الذي يقوم بتشغيل جميع المهام في مساحة عنوان افتراضية واحدة بحجم 16 ميجا بايت.
يمكن تقسيم الذاكرة إلى صفحات حسب الطلب عندما يتمكن النظام من نقل الصفحات حسب الحاجة بين الذاكرة الأساسية والثانوية.
إدارة الذاكرة المجزأة
الذاكرة المجزأة هي تقنية إدارة الذاكرة الوحيدة التي لا توفر لبرنامج المستخدم "مساحة عنوان خطية ومتجاورة". [1] : 165 المقاطع هي مناطق من الذاكرة تتوافق عادةً مع تجميع منطقي للمعلومات مثل إجراء التعليمات البرمجية أو مصفوفة البيانات. تتطلب المقاطع دعمًا ماديًا في شكل جدول مقطع يحتوي عادةً على العنوان الفعلي للقطعة في الذاكرة وحجمها وبيانات أخرى مثل بتات حماية الوصول والحالة (تم التبديل، وتم التبديل، وما إلى ذلك).
يسمح التجزئة بحماية وصول أفضل من المخططات الأخرى لأن مراجع الذاكرة تكون نسبية لشريحة محددة ولن تسمح الأجهزة للتطبيق بالإشارة إلى ذاكرة غير محددة لهذا الشريح.
من الممكن تنفيذ التجزئة مع أو بدون الترقيم. بدون دعم الترقيم، يكون المقطع هو الوحدة المادية التي يتم تبديلها داخل وخارج الذاكرة إذا لزم الأمر. مع دعم الترقيم، تكون الصفحات عادةً هي وحدة المبادلة والتجزئة تضيف مستوى إضافيًا من الأمان فقط.
تتكون العناوين في النظام المجزأ عادةً من معرف القطعة والإزاحة النسبية لعنوان قاعدة القطعة، والتي تم تعريفها لتكون الإزاحة صفرًا.
تسمح بنية Intel IA-32 (x86) للعملية بامتلاك ما يصل إلى 16383 مقطعًا يصل حجم كل منها إلى 4 جيجابايت. تعد مقاطع IA-32 أقسامًا فرعية من مساحة العنوان الخطية للكمبيوتر ، وهي مساحة العنوان الافتراضية التي توفرها أجهزة الترحيل. [5]
ربما يكون نظام التشغيل Multics هو النظام الأكثر شهرة الذي ينفذ الذاكرة المجزأة. تعد مقاطع Multics أقسامًا فرعية من الذاكرة الفعلية للكمبيوتر تصل إلى 256 صفحة، كل صفحة بحجم 1 كيلو بايت من الكلمات ذات 36 بت، مما يؤدي إلى حجم مقطع أقصى يبلغ 1 ميجا بايت (مع 9 بايتات، كما هو مستخدم في Multics). يمكن أن تحتوي العملية على ما يصل إلى 4046 مقطعًا. [6]
الطرح/التدحرج
إن الطرح/التدحرج (RO/RI) هو أسلوب لإدارة ذاكرة نظام تشغيل الكمبيوتر حيث يتم تبديل الكود والبيانات غير المشتركة بالكامل لبرنامج قيد التشغيل إلى ذاكرة مساعدة (قرص أو أسطوانة) لتحرير التخزين الرئيسي لمهمة أخرى. يمكن طرح البرامج "عند الطلب أو... عند انتظار حدث طويل". [7] كان الطرح/التدحرج يستخدم بشكل شائع في أنظمة تقاسم الوقت ، [8] حيث كان "وقت التفكير" للمستخدم طويلًا نسبيًا مقارنة بالوقت اللازم لإجراء المبادلة.
على عكس التخزين الافتراضي - الترقيم أو التجزئة، لا يتطلب الطرح/الطرح أي أجهزة خاصة لإدارة الذاكرة؛ ومع ذلك، ما لم يكن النظام مزودًا بأجهزة نقل مثل خريطة الذاكرة أو سجلات القاعدة والحدود ، فيجب إعادة البرنامج إلى مواقع الذاكرة الأصلية. وقد حلت الذاكرة الافتراضية محل الطرح/الطرح إلى حد كبير.
كان الطرح/الطرح ميزة اختيارية لتعدد البرمجة في نظام التشغيل OS/360 مع عدد متغير من المهام (MVT)
يسمح الطرح/التدحرج بالتوسع الديناميكي المؤقت لمهمة معينة خارج منطقتها المحددة في الأصل. عندما تحتاج المهمة إلى مساحة أكبر، تحاول الطرح/التدحرج الحصول على مساحة تخزين غير مخصصة لاستخدام المهمة. إذا لم يكن هناك مساحة تخزين غير مخصصة، يتم طرح مهمة أخرى - أي يتم نقلها إلى مساحة تخزين مساعدة - بحيث يمكن استخدام منطقتها بواسطة المهمة الأولى. عند تحريرها بواسطة المهمة الأولى، تكون مساحة التخزين الإضافية هذه متاحة مرة أخرى، إما (1) كمساحة تخزين غير مخصصة، إذا كان هذا هو مصدرها، أو (2) لتلقي المهمة المراد نقلها مرة أخرى إلى مساحة التخزين الرئيسية (تدحرج). [9]
في OS/360، تم استخدام rollout/rollin فقط للوظائف الدفعية، ولا يحدث rollin إلا بعد انتهاء خطوة الوظيفة التي تستعير المنطقة.
انظر أيضا
ملحوظات
- ^ تُعرف باسم مناطق TSO
مراجع
- ^ ab Madnick, Stuart; Donovan, John (1974). Operating Systems. McGraw-Hill Book Company. ISBN 0-07-039455-5.
- ^ IBM Corporation (1970). نظام التشغيل IBM System/360: المفاهيم والمرافق (PDF) . ص 73.
- ^ سامانتا، د. (2004). هياكل البيانات الكلاسيكية. PHI Learning Pvt. Ltd. ص 94. ISBN 8120318749.
- ^ IBM Corporation (1972). دليل خيارات تقاسم الوقت لنظام التشغيل IBM System/360 (PDF) . ص. 10.(GC28-6698-5)
- ^ شركة إنتل. IA-32 دليل مطور برامج هندسة إنتل المجلد 1: الهندسة الأساسية .
- ^ جرين، بول. "Multics Virtual Memory – Tutorial and Reflections". مؤرشف من الأصل في 2001-03-05 . تم الاسترجاع في 9 مايو 2012 .
- ^ والرايت، بوب (2014). البرمجة، التحدي المستحيل. إلسفير. ص 124. رقم ISBN 978-0-444-87128-2تم الاسترجاع في 24 أغسطس 2018 .
- ^ "rollin/rollout" ندوة دولية حول نمذجة وقياس وتقييم أداء الكمبيوتر. رابطة آلات الحوسبة. 29-31 مارس 1976. ص. 137. تم الاسترجاع في 24 أغسطس 2018 .
- ^ IBM Corporation (يونيو 1970). نظام تشغيل IBM System/360: المفاهيم والمرافق (PDF) . ص. 55. تم الاسترجاع في 24 أغسطس 2018 .
