ScholarGate
المساعد

الذاكرة المشتركة والاتساق

تتيح بنية الذاكرة المشتركة لعدة معالجات العمل على مساحة عنوان مشتركة؛ ويحدد نموذج اتساق الذاكرة الترتيب الذي تصبح فيه عمليات الذاكرة الخاصة بمعالج واحد مرئية للآخرين، وهو العقد الذي تعتمد عليه البرامج المتوازية.

اعثر على موضوع باستخدام PaperMindقريبًاFind papers & topics
Tools & resources
تنزيل الشرائح
Learn & explore
فيديوقريبًا

Definition

نموذج اتساق الذاكرة هو مواصفات الترتيبات المسموح بها لعمليات قراءة وكتابة الذاكرة عبر المعالجات في نظام ذاكرة مشتركة، ويحدد القيم التي قد تُرجعها عملية التحميل، وبالتالي العقد بين الأجهزة والبرامج المتزامنة.

Scope

يغطي هذا الموضوع المعالجة المتعددة للذاكرة المشتركة، وبشكل أساسي، نماذج اتساق الذاكرة: الاتساق التسلسلي، والنماذج المرنة والضعيفة، وحواجز الذاكرة، والعلاقة بين الاتساق والتماسك. كما يغطي بدائيات المزامنة التي تعتمد على نموذج الاتساق. ويستثني آلية التماسك لكل موقع (بروتوكولات تماسك الذاكرة المؤقتة) والتكامل على مستوى الشريحة للنوى (المعالجات متعددة النوى والمعالجات متعددة النوى على الشريحة).

Core questions

  • ما هو ترتيب عمليات الذاكرة الذي قد تفترضه البرامج المتوازية؟
  • كيف يختلف الاتساق التسلسلي عن نماذج الاتساق المرنة؟
  • لماذا توجد النماذج المرنة، وكيف تستعيد حواجز الذاكرة الترتيب المطلوب؟
  • كيف يحدد التماسك والاتساق معًا السلوك الصحيح للذاكرة المشتركة؟

Key concepts

  • مساحة العنوان المشتركة
  • نموذج اتساق الذاكرة
  • الاتساق التسلسلي
  • الاتساق المرن والضعيف
  • حواجز الذاكرة
  • الاتساق مقابل التماسك
  • بدائيات المزامنة
  • سباقات البيانات

Key theories

الاتساق التسلسلي
يتطلب الاتساق التسلسلي للامبورت أن تكون نتيجة التنفيذ كما لو أن عمليات جميع المعالجات قد تداخلت في ترتيب عالمي واحد يحترم ترتيب برنامج كل معالج؛ وهو بديهي ولكنه يقيد تحسين الأجهزة، مما يحفز النماذج المرنة.

Mechanisms

تعيد الأجهزة ترتيب عمليات الذاكرة وتخزنها مؤقتًا لتحسين الأداء، لذا يحدد نموذج الاتساق أي من عمليات إعادة الترتيب هذه تكون مرئية للمعالجات الأخرى. يمنع الاتساق التسلسلي إعادة الترتيب المرئية عبر المعالجات؛ وتسمح النماذج المرنة بعمليات إعادة ترتيب معينة لزيادة السرعة وتتطلب من المبرمجين إدخال حواجز الذاكرة لفرض الترتيب عند الحاجة. تُبنى بدائيات المزامنة مثل الأقفال والعمليات الذرية على هذه الضمانات، وتتصرف البرامج التي تتجنب سباقات البيانات بشكل متوقع.

Clinical relevance

يُعد نموذج اتساق الذاكرة أساس البرمجة المتزامنة الصحيحة: فهو يحدد ما يمكن لبرنامج متعدد الخيوط (multithreaded program) أن يفترضه بشكل مشروع حول رؤية وترتيب التحديثات المشتركة. يؤدي سوء فهمه إلى أخطاء دقيقة ويصعب إعادة إنتاجها، وتُبنى نماذج ذاكرة اللغة (كما في C++ و Java) مباشرة على هذه المفاهيم المتعلقة بالأجهزة.

History

صاغ لامبورت الاتساق التسلسلي رسميًا في عام 1979. ومع تزايد عدوانية الأجهزة في إعادة ترتيب وصول الذاكرة لتحسين الأداء، انتشرت نماذج الاتساق المرنة عبر البنى في الثمانينيات والتسعينيات، مما دفع إلى العمل على تعريفها وترويضها، وفي النهاية، لمنح لغات البرمجة نماذج ذاكرة خاصة بها ومحددة جيدًا.

Debates

الاتساق القوي مقابل الاتساق المرن
نماذج الاتساق القوية مثل الاتساق التسلسلي أسهل في الفهم ولكنها تحد من أداء الأجهزة، بينما تتيح النماذج المرنة التحسين على حساب تعقيد المبرمج؛ ويستمر المجال في الموازنة بين الدلالات البديهية والكفاءة من خلال نماذج وحواجز محددة بعناية.

Key figures

  • Leslie Lamport
  • Sarita Adve
  • Mark D. Hill
  • David E. Culler

Related topics

Seminal works

  • hennessy2019
  • culler1999

Frequently asked questions

ما الفرق بين التماسك والاتساق؟
يضمن التماسك أن تتفق جميع المعالجات في النهاية على قيمة كل موقع ذاكرة فردي وترى عمليات الكتابة إليه بترتيب معقول. يحكم الاتساق ترتيب العمليات عبر المواقع المختلفة كما تلاحظها المعالجات المختلفة. يفترض نموذج الاتساق وجود التماسك ويضيف قواعد ترتيب عبر المواقع.
لماذا تستخدم المعالجات نماذج ذاكرة مرنة؟
سيجبر الترتيب الصارم الأجهزة على التخلي عن التخزين المؤقت وإعادة الترتيب التي تخفي زمن انتقال الذاكرة، مما يضر بالأداء. تتيح النماذج المرنة للأجهزة التحسين بحرية وتمنح المبرمجين حواجز صريحة لفرض الترتيب فقط حيث تتطلبه الصحة.

Methods for this concept

Related concepts