الذريات والحواجز وترتيب الذاكرة
تحديد تحديثات لا تتجزأ والترتيب المطلوب لنشر البيانات بأمان.
«عمل على معالجي» ليست نموذج ذاكرة.
وصول محدد لا يتجزأ.
تتبّع التعليمة
يرفع التداخل معدل الإنجاز. تضيف الاعتماديات فراغات ما لم يسمح التنفيذ بالتمرير أو بعمل مستقل.
حدود هذا النموذج
نموذج تعليمي أحادي الإرسال من خمس مراحل. يضيف نمط الاعتماد دورتين فارغتين بين التعليمات؛ تختلف التعارضات والتمرير الحقيقيان.
ما الذي يحدث في الداخل
اختيار الضمان
تمنع العملية الذرية تجزؤ الوصول المحدد وتوفر معنى معرفًا للتزامن. تمنح relaxed الذرية دون ترتيب نشر عام. قد تزامن release/acquire البيانات حين تلاحظ acquire الإصدار المعني وفق قواعد اللغة. تفرض sequential consistency عقد ترتيب أقوى.
احترام كل الطبقات
إعادة ترتيب المترجم والعتاد مسألتان مختلفتان. حاجز المترجم وحده لا يرتب كل وصول عتادي. تحتاج ذاكرة الأجهزة وDMA وسائل خاصة بالمنصة. lock-free لا تعني wait-free، وقد تسلسل ذرية متنافسة خيوطًا كثيرة.
ما أثر ذلك في برنامجك
مهندس الأنظمة والعتاد
استدل بنموذج اللغة والبنية المحددين. استخدم وسائل معروفة بدل اختراع بروتوكول lock-free بالحدس.
مطوّر البرمجيات
غالبًا يكون mutex الاختيار الأوضح للصحة. قلل الحالة المشتركة المتغيرة قبل إضعاف الترتيب لأجل السرعة.
// C++ publication example; one producer and one consumer
std::atomic<bool> ready{false};
int payload = 0;
// producer
payload = 42;
ready.store(true, std::memory_order_release);
// consumer, after observing true
if (ready.load(std::memory_order_acquire)) use(payload);اقرأ المواصفات الأصلية
توضح هذه المراجع العقود الأساسية وتفاصيل التنفيذ. الرسومات هنا نماذج تعليمية مبسطة.