नीचे वर्णित आदेश के संबंध में मेरे कुछ संबंधित प्रश्न हैं।मेमोरी ऑर्डरिंग और उचित प्रोग्रामिंग अभ्यास पर गारंटी
इन आदेश गारंटीओं को देखते हुए मुझे कई स्थानों पर स्पष्ट बाड़ की आवश्यकता नहीं है। हालांकि, मैं विशेष रूप से जीसीसी में कंपाइलर को "बाड़" कैसे व्यक्त कर सकता हूं? यही है, प्रोग्राम ऑर्डर की गारंटी केवल तब तक लागू होती है जब ऑप्टिमाइज़र मेरे प्रोग्राम को पुन: व्यवस्थित नहीं करता है।
क्या उपयोग में सामान्य/लोकप्रिय नए चिप्स हैं जिनके पास सामान्य उद्देश्य कोर हैं जो ऐसी गारंटी प्रदान नहीं करते हैं?
मैं इंटरलिविंग के अपने विचार के साथ सी ++ 0x में थोड़ा उलझन में हूं। क्या मुझे इन गारंटीओं का उपयोग करने के लिए "परमाणु" वर्ग का उपयोग करना चाहिए, या क्या मसौदे में कोई अन्य पहलू है जो इन गारंटीओं का उपयोग करने का एक तरीका भी प्रदान करता है?
मेमोरी आदेश
दोनों इंटेल और एएमडी, कम से कम x86_64 के साथ, गारंटी देते हैं कि स्मृति भार दुकान एक एकल प्रोसेसर पर किया संचालन के संबंध में अनुक्रमिक हैं। यही कारण है, अगर कुछ प्रोसेसर इन दुकानों को निष्पादित करता है:
- स्टोर एक < - 1
- स्टोर बी < - 2
- स्टोर सी < - 3
पल कुछ अन्य प्रोसेसर देखता सी (3) यह पिछले स्टोर ए (1) और बी (2) को भी देखने की गारंटी है। अब, प्रोसेसर के बीच दृश्यता को अंतःस्थापित किया जा सकता है, लेकिन किसी दिए गए प्रोसेसर से स्टोर ऑर्डर अनुक्रमिक भी होगा।
जब प्रोसेसर 0 प्रोसेसर 1 द्वारा संग्रहीत एक मूल्य पढ़ता उन्होंने यह भी सकर्मक गारंटी देता है, तो एक मूल्य लिखते हैं, कि प्रोसेसर 2 नए मूल्य पढ़ने भी प्रोसेसर 1.
से है कि मूल्य देखना होगा विशेष मामलों पर ध्यान न दें आईओ और विशेष उपकरणों से निपटना। मुझे केवल सामान्य स्मृति गारंटी में रूचि है: यहां मेरा ऑर्डर करना थोड़ा सा है जिसमें मुझे सबसे ज्यादा रूचि है क्योंकि समवर्ती एल्गोरिदम के लिए इसका सबसे महत्व है।
यह स्थिति का एक उत्कृष्ट अवलोकन है। –