शीर्षक में बस, एक संगत स्मृति ब्लॉक क्या है?एक संगत स्मृति ब्लॉक क्या है?
उत्तर
किसी भी पते पर किसी भी अंतराल के बिना। आप शायद इसे "ब्लॉक" के रूप में सोच सकते हैं, और मध्य में एक अंतर के साथ कुछ "दो ब्लॉक" के रूप में सोच सकते हैं।
यह शब्द एक सरणी की परिभाषा में "संगत" होने के रूप में आता है। इसका मतलब है कि तत्वों को अंत तक अंत तक रखा जाता है, जिनमें कोई विचलन नहीं होता है और उनके बीच कोई पैडिंग नहीं होती है (प्रत्येक तत्व के अंदर पैडिंग हो सकती है, लेकिन तत्वों के बीच नहीं)। तो 5 4 बाइट तत्वों की एक सरणी इस तरह दिखता है (बाइट प्रति 1 अंडरस्कोर वर्ण, | प्रतीकों स्मृति का प्रतिनिधित्व नहीं करते):
____ ____ ____ ____ ____
|____|____|____|____|____|
यह इस तरह नहीं दिखता है:
____ _ ____ _ ____ _ ____ _ ____
|____|_|____|_|____|_|____|_|____|
और न इसे इस तरह दिखता है:
____ ____ ____ ____ ____
|____|____|____| ... somewhere completely different ... |____|____|
सभी मामलों में, "लगता है" का अर्थ है "जहाँ तक सी में दिखाई दे रहा पतों का संबंध है"। कुछ वर्चुअल एड्रेस स्पेस में संगत हो सकता है, लेकिन भौतिक RAM में संगत नहीं है। उस मामले के लिए, भौतिक रैम पता स्थान में कुछ संगत हो सकता है, लेकिन वास्तव में भौतिक RAM में आसन्न नहीं है। इसमें से आधा यहां एक रैम चिप पर हो सकता है, और दूसरा आधा वहां एक और रैम चिप पर हो सकता है। लेकिन सी मेमोरी मॉडल उसमें से कोई भी "देख" नहीं सकता है।
स्मृति की एक ब्लॉक जो अन्य स्मृति द्वारा बाधित नहीं है। या अधिक सटीक होने के लिए इसे वर्चुअल एड्रेस-स्पेस के एक निर्बाध ब्लॉक की आवश्यकता होती है। असली रैम का समर्थन करने वाले स्थान को संबोधित करने की आवश्यकता नहीं है।
यदि आप एक बड़ी मेमोरी ब्लॉक आवंटित करते हैं तो यह महत्वपूर्ण है। ओएस को आपको एक संगत ब्लॉक के रूप में देना है, लेकिन यदि स्मृति इतनी खंडित है कि केवल छोटे टुकड़े मुक्त हैं तो यह स्मृति आवंटन संतुष्ट नहीं हो सकता है भले ही कुल खाली स्मृति अनुरोधित स्थान से बड़ी हो।
यह 64 बिट ऐप्स पर इतनी बड़ी समस्या नहीं है क्योंकि पता स्थान वहां बड़ा है। लेकिन 32 बिट प्रक्रियाओं में यह हो सकता है कि ढेर इतनी खंडित हो जाती है (मुक्त ब्लॉक के बीच अभी भी मुक्त ब्लॉक हैं) कि बड़े आवंटन विफल हो जाते हैं।
मेमोरी आवंटित करने के संदर्भ में उत्तर देते समय, जब आप मेमोरी आवंटक का आह्वान करते हैं और स्मृति के 24 बाइट्स का अनुरोध करते हैं, तो यह कम से कम 24 बाइट्स को आवंटित स्मृति के एक ब्लॉक को ढूँढने में सक्षम होना चाहिए।
यह एक पते x
पर शुरू स्मृति के 16 बाइट्स और एक अन्य 8 बाइट्स एक पते पर शुरू है, तो y
ऐसी है कि y > x + 16
या y < x - 8
(कि एक अंतर पैदा करेगा), तो संभाजक 24 बाइट्स के लिए आपके अनुरोध के बावजूद संतुष्ट नहीं कर सकते कुल 24 बाइट मुक्त हैं।
Fragmentation भी देखें।
एक मेमोरी ब्लॉक बिल्कुल संगत होता है जब इसे एक रैखिक पता स्थान से प्रारंभ और अंत पता द्वारा परिभाषित किया जाता है और इसमें कोई छेद नहीं होता है।
यह, पांच बाइट्स की एक सन्निहित स्मृति खंड है स्थान 1 से स्थान से 5 फैले:
यह बाइट (हल्के नीले रंग में) का प्रतिनिधित्व करता है कि कोई अंतराल के साथ स्मृति में एक साथ हैं बाइट्स (सफेद) उनके बीच।
यह बाइट्स (पीला) के तीन समूहों में खंडित है, अंतराल के साथ स्थान 1 से शुरू बाइट्स समूहों के बीच वर्तमान:
यह ब्याज के पांच बाइट्स का एक गैर-निरंतर सेट है। अंतर बाइट्स स्थान 4 और 6 पर हैं।
+1 :) – Michael
- 1. क्या वालराय में संगत स्मृति संरेखण है?
- 2. यह जांचने के लिए कि क्या Iterators एक संगत स्मृति क्षेत्र बनाते हैं?
- 3. जावा: स्मृति में 1-डी सरणी हमेशा संगत होती है?
- 4. क्या एक स्क्रिप्ट ब्लॉक या एकाधिक ब्लॉक
- 5. क्या उपयोगकर्ता स्थान में, लिनक्स पर स्मृति का एक गैर कैशबल ब्लॉक आवंटित करना संभव है?
- 6. क्या यह एक स्मृति रिसाव है?
- 7. सी # सी ++ वेक्टर के बराबर, संगत स्मृति के साथ?
- 8. क्या दस्तावेज़.रेफरर क्रॉस ब्राउज़र संगत है?
- 9. है वहाँ स्मृति धारा है कि एक फ़ाइल धारा की तरह ब्लॉक
- 10. एक्स-यूए-संगत का बिंदु क्या है?
- 11. एक कोशिश ब्लॉक के अंदर एक सिंक्रनाइज़ ब्लॉक या एक सिंक्रनाइज़ ब्लॉक के अंदर एक कोशिश ब्लॉक बेहतर है?
- 12. कैसे एक स्मृति ढेर
- 13. गठबंधन स्मृति आवंटन क्या है?
- 14. क्या स्मृति
- 15. हास्केल जहां एक ब्लॉक ब्लॉक
- 16. क्या रूबी में एक से अधिक ब्लॉक को एक से अधिक ब्लॉक पास करना संभव है?
- 17. क्या स्मृति विलोपन दिनचर्या ब्लॉक को मुक्त किया जा रहा है?
- 18. तत्व के साथ संगत एक तत्व की एक संरचना है?
- 19. एक ब्लॉक
- 20. घोंसला किया गया है एक बुरा विचार ब्लॉक/कैच ब्लॉक?
- 21. बू 100% सी # संगत है?
- 22. क्या एक खाली प्रतिनिधि स्मृति को खाएगा?
- 23. क्या यह स्मृति जारी करने का एक अच्छा तरीका है?
- 24. स्मृति में क्या होता है जब एक सी ++ वर्ग तत्काल
- 25. क्या jQuery.data एक स्मृति रिसाव का कारण बन सकता है?
- 26. कम स्मृति उपयोग के लिए एक अच्छा डेटाबेस क्या है?
- 27. क्या कोई चार्ट है जिसमें ओएसएस लाइसेंस संगत है?
- 28. क्या एमवीसीमेलर SendAsync एक एएसपी.नेट एमवीसी अनुरोध ब्लॉक करता है?
- 29. क्या "उपज कीवर्ड" एक इटरेटर ब्लॉक के बाहर उपयोगी है?
- 30. क्या एक आईफोन ऐप ब्लॉक फोन कॉल कर सकता है?
+1 अच्छी आकृति। –
@ शिनान: धन्यवाद, मैं काम करता हूं। उस प्रतिक्रिया के लिए –
+1, क्लासिक। –