الذاكرة الثابتة Static والديناميكية Dynamic
تخصيص الذاكرة الثابت والديناميكي Static and Dynamic Memory Allocation هما طريقتان يتم تصنيف تخصيص الذاكرة بهما. يتمثل الاختلاف الكبير بين تخصيص الذاكرة الثابتة والديناميكية في أن تخصيص الذاكرة الثابتة هو تقنية تخصيص الذاكرة بشكل دائم. وبالتالي ، فهو تخصيص ذاكرة ثابت. مقابل ذلك ، فإن تخصيص الذاكرة الديناميكي هو طريقة تخصيص الذاكرة وفقًا للمتطلبات ، وبالتالي فهو تخصيص متغير للذاكرة.
هناك بعض المعايير التي يتم على أساسها التفريق بين الاثنين ولكن قبل ذلك ، يجب أن نعرف -
ما هو تخصيص الذاكرة ؟
يتم تعريف تخصيص الذاكرة على أنه طريقة تخصيص مساحة الذاكرة لعملية واحدة أو أكثر. من خلال تخصيص الذاكرة ، يتم تخصيص مساحة ذاكرة فعلية أو ظاهرية للبرامج أو العمليات.
من خلال تخصيص الذاكرة ، يتم حجز ذاكرة الكمبيوتر الكاملة أو الجزئية للبرامج والعمليات. يتم تصنيف تخصيص الذاكرة بشكل أساسي على أنه تخصيص ذاكرة ثابت وديناميكي. تخصيص الذاكرة هو عملية الأجهزة ولكن نظام التشغيل وتطبيقات البرامج هي المسؤولة عن إدارتها.
وتجدر الإشارة هنا إلى أنه قبل تنفيذ البرنامج ، يكون تحديد ذاكرة البرنامج الدقيقة المطلوبة لتشغيل البرنامج أمرًا صعبًا للغاية. وبالتالي ، يتم اتخاذ قرارات تخصيص الذاكرة في معظم الأوقات في وقت التشغيل.
تعريف تخصيص الذاكرة الثابتة Static Memory Allocation
SMA ، اختصار لتخصيص الذاكرة الثابتة ، هو طريقة يتم من خلالها تخصيص مساحة ذاكرة ثابتة لبرنامج ما قبل تنفيذ البرنامج. يُعرف أيضًا باسم تخصيص الذاكرة الثابتة كما هو الحال في هذا النهج بمجرد تخصيص مساحة للذاكرة ، فلا يمكن إجراء تغييرات أخرى فيما يتعلق بتعديلات المساحة أو إعادة التخصيص.
يوفر SMA الحجز المسبق لمساحة الذاكرة ويتم استخدام مكدس بنية البيانات لتنفيذه.
في تخصيص الذاكرة الثابتة ، بمجرد تخصيص مساحة ذاكرة لعملية ما ، لا يهم ما إذا كان البرنامج يستخدم تلك الذاكرة في تلك اللحظة بالذات أم لا. لأن هذه الذاكرة المخصصة لا يمكن استخدامها لأي غرض آخر. هذا يعني أنه حتى إذا كانت الذاكرة لا فائدة منها ، فإنه أيضًا بموجب تقنية تخصيص الذاكرة الثابتة ، لا يمكن إعادة استخدام الذاكرة المخصصة.
يُظهر تخصيص الذاكرة الثابتة بشكل أساسي الملاءمة تجاه إدارة الذاكرة لمساحات الذاكرة القصيرة حيث يكون حجم الذاكرة المطلوب معروفًا بالفعل قبل التخصيص.
تعريف التخصيص الديناميكي للذاكرة Dynamic Memory Allocation
DMA ، اختصار لتخصيص الذاكرة الديناميكية ، هو طريقة لتخصيص مساحة ذاكرة لعملية أو برنامج في الوقت الذي يتم فيه تنفيذ البرنامج. يشار إليه أحيانًا بالمتغير أو التخصيص اليدوي للذاكرة لأنه يسمح بإعادة التعيين أو الضبط في مساحة الذاكرة المخصصة عندما لا يتم استخدام الذاكرة بواسطة العملية المعنية.
لا تسمح هذه التقنية بالحجز المسبق لمساحة الذاكرة قبل تنفيذ البرنامج واستخدام بنية بيانات الكومة لتنفيذه. من خلال التحليل الميكانيكي الديناميكي (DMA) ، يمكن أن يتم تخصيص الذاكرة وتحريرها في أي وقت.
على عكس SMA ، يُسمح هنا بإعادة التخصيص وحتى تحرير مساحة الذاكرة المستخدمة. هنا يتم استخدام وظائف مثل calloc () و realloc () و free () لتعيين مساحة الذاكرة وإعادة تعيينها وتحريرها داخل النظام. تخصيص الذاكرة الديناميكي يدير مساحة الذاكرة المتاحة بكفاءة. ومع ذلك ، فإن أحد العوائق الرئيسية لهذا هو تسرب الذاكرة. ينشأ تسرب الذاكرة عندما تستخدم بعض البرامج مساحة الذاكرة بشكل مستمر ولكنها لا تحرر المساحات غير المستخدمة ، ثم بعد فترة زمنية ، ينفد النظام من الذاكرة.
الاختلافات الرئيسية بين تخصيص الذاكرة الثابتة والديناميكية
العامل الرئيسي للتمييز بين تخصيص الذاكرة الثابت والديناميكي هو أن تخصيص الذاكرة الثابتة هو نوع ثابت من تخصيص الذاكرة حيث يتم إصلاح مساحة الذاكرة المخصصة. على العكس من ذلك ، فإن تخصيص الذاكرة الديناميكي هو نوع متغير من تخصيص الذاكرة حيث تختلف مساحة الذاكرة المخصصة وفقًا للمتطلبات.
نظرًا لأن تخصيص الذاكرة الثابتة يعين مسبقًا مساحة ذاكرة ثابتة ، فإن فرص إهدار مساحة الذاكرة عند عدم استخدامها تكون عالية. مقابل ذلك ، من خلال تخصيص الذاكرة الديناميكي ، يمكن زيادة مساحة الذاكرة المطلوبة أو تقليلها وفقًا للمتطلبات ، وبالتالي فإن فرص إهدار مساحة الذاكرة منخفضة جدًا.
لا يوفر SMA إمكانية إعادة استخدام الذاكرة نظرًا لطبيعتها الثابتة ولكن يمكن للذاكرة ذلك يمكن إعادة استخدامها عند التخصيص بموجب التحليل الميكانيكي الديناميكي (DMA).
SMA مناسب لجميع تلك الظروف حيث توجد فكرة مسبقة بشأن حجم الذاكرة المطلوبة. لكن التحليل الميكانيكي الديناميكي (DMA) مناسب للظروف التي يكون فيها حجم الذاكرة المطلوب غير معروف مسبقًا.
يعد تخصيص الذاكرة الثابتة طريقة أسرع نسبيًا لتخصيص مساحة للذاكرة مقارنة بالتخصيص الديناميكي للذاكرة. والسبب في ذلك هو أن تخصيص مقدار ثابت من الذاكرة يستغرق وقتًا أقل من التخصيص المتغير لها.
يعد SMA أقل كفاءة نسبيًا من DMA حيث يقدم الأول عيوبًا مثل إهدار الذاكرة وعدم إعادة الاستخدام. بينما يتغلب التحليل الميكانيكي الديناميكي (DMA) على هذه العيوب ، فإنه يكون أكثر كفاءة.
عندما يتم تخصيص مساحة الذاكرة بشكل دائم لأحد البرامج ، لا تحدث مشكلة التجزئة. ولكن عندما يكون هناك تباين في تخصيص المساحة ، فحتى مساحة الذاكرة المتاحة إذا كانت موجودة في أجزاء لا فائدة منها.
يتطلب تخصيص الذاكرة الثابتة مساحة ذاكرة أكبر من تخصيص الذاكرة الديناميكي.
استنتاج
وبالتالي ، يُقال أن تنفيذ تخصيص الذاكرة الثابتة أبسط تمامًا مقارنةً بتخصيص الذاكرة الديناميكي.
تعليقات
إرسال تعليق