مقدار الذاكرة يمكن أن 32 بت عملية الحصول على 64 بت نظام التشغيل ؟

StackOverflow https://stackoverflow.com/questions/639540

  •  11-07-2019
  •  | 
  •  

سؤال

على ويندوز ، في ظل الظروف العادية 32 بت عملية يمكن فقط الوصول إلى 2GB من ذاكرة الوصول العشوائي (أو 3GB مع مفتاح خاص في التمهيد.ini).عند تشغيل 32 بت على 64 بت نظام التشغيل هو مقدار الذاكرة المتوفرة ؟ هل هناك أي التبديل الخاصة أو الإعدادات التي يمكنك تغيير هذا ؟

هل كانت مفيدة؟

المحلول

و2 GB افتراضيا. إذا كان التطبيق مساحة عنوان كبير على علم (مرتبط مع / LARGEADDRESSAWARE)، فإنه يحصل على 4 GB (وليس 3 GB، انظر> وأ href = "http://msdn.microsoft.com/en-us/library/aa366778.aspx" يختلط = "noreferrer"> http://msdn.microsoft.com/en-us/library/aa366778.aspx )

وانهم لا تزال محدودة إلى 2 GB منذ العديد من التطبيقات يعتمد على بت العلوي من المؤشرات إلى أن يكون صفرا.

نصائح أخرى

و4 GB ناقص ما هو قيد الاستخدام من قبل النظام إذا قمت بربط مع / LARGEADDRESSAWARE.

بالطبع، يجب أن تكون أكثر حذرا مع الحساب المؤشر إذا قمت بتعيين هذا العلم.

ويبدو أن لا أحد أتطرق إلى حقيقة أنه إذا كان لديك العديد من التطبيقات المختلفة 32 بت، الفرعي WOW64 يمكن تعيين لهم في أي مكان في الذاكرة أعلاه 4G، لذلك على ويندوز 64 بت مع ذاكرة كافية، يمكنك تشغيل غيرها الكثير 32 تطبيقات بت من على نظام 32 بت أصلي.

وعملية 32 بت لا يزال محدودا لنفس القيود في نظام تشغيل 64 بت. المسألة هي أن مؤشرات الذاكرة ليست سوى 32-بت واسعة، وبالتالي فإن البرنامج لا يمكن تعيين / حل أي عنوان ذاكرة أكبر من 32 بت.

ويقتصر إن عملية 32-بت واحد في ظل نظام تشغيل 64 بت إلى 2GB. ولكن إذا تم ترجمة إلى ملف EXE مع مجموعة IMAGE_FILE_LARGE_ADDRESS_AWARE قليلا، بعد ذلك له حد من 4 GB، لا 2GB - راجع <لأ href = "https://msdn.microsoft.com/en-us/library/aa366778 ( VS.85) .ASPX "يختلط =" نوفولو noreferrer "> https://msdn.microsoft.com/en-us/library/aa366778 (VS.85) .aspx اتصال

في كلتا الحالتين، يتم تقاسم مساحة العنوان الظاهرية نواة عبر جميع العمليات. لهذا السبب حتى لو كان لديك عدد كبير جدا من عمليات 32 بت أنها يمكن أن نفدت الذاكرة على الرغم من حقيقة أن لديك الكثير من الذاكرة المتوفرة لنظام 64 بت التشغيل، مثلا، 16 GB - 32 بت العمليات في المجموع يمكن تشغيل بسرعة للخروج من الفضاء نواة لالظاهري عنوان المتاحة لهم (كحد أقصى 2GB).

والأشياء التي نسمع عن الأعلام الخاصة التمهيد، 3 مفاتيح GB، / 3GB أو / USERVA هي أنظمة التشغيل كل شيء عن 32 بت و لا تنطبق على ويندوز 64 بت.

https://msdn.microsoft كوم / EN-US / مكتبة / aa366778 (ت = vs.85) .aspx اتصال للحصول على مزيد من التفاصيل.

وأما عن أنظمة التشغيل 32 بت، على عكس الاعتقاد، وليس هناك حد المادي ل4GB لأنظمة التشغيل 32 بت. على سبيل المثال، 32 بت أنظمة تشغيل الخادم مثل مايكروسوفت ويندوز سيرفر 2008 32 بت يمكن الوصول إلى ما يصل إلى 64 GB (ويندوز سيرفر 2008 المؤسسة والطبعات مراكز البيانات) - عن طريق ملحق العنوان الفعلي (PAE)، الذي قدم للمرة الأولى من قبل شركة انتل في بنتيوم برو، ولاحقا من قبل AMD في المعالج أثلون - فإنه يعرف التدرج الهرمي للجدول صفحة من ثلاثة مستويات، مع إدخالات جدول من 64 بت كل بدلا من 32، مما يسمح لهذه وحدات المعالجة المركزية للوصول مباشرة إلى العنوان الفعلي مساحة أكبر من 4 غيغا بايت - حتى من الناحية النظرية، يمكن لنظام التشغيل 32 بت الوصول إلى 2 ^ 64 بايت نظريا، أو 17179869184 غيغا بايت، ولكن شريحة محدودة بسبب 4GB. ومع ذلك، لأسباب والتسويق، ومايكروسوفت قد يقتصر أقصى ذاكرة الوصول إليها على أنظمة تشغيل غير ملقم إلى مجرد 4GB، أو، حتى، 3GB على نحو فعال. وهكذا، يمكن لعملية واحدة الوصول إلى أكثر من 4GB على نظام تشغيل 32 بت - وملقم Microsoft SQL مثال

كنت قد حصلت على نفس قيود الأساسية عند تشغيل 32bit العملية تحت Win64.التطبيق الخاص بك يعمل في 32 ولكن الفرعي الذي تبذل قصارى جهدها لتبدو مثل Win32 و هذا سوف تشمل الذاكرة قيود على العملية الخاصة بك (أقل من 2GB لك العليا 2GB نظام التشغيل)

والحد الأقصى هو ليس 2G أو 3GB 4GB من أجل 32BIT و.

والسبب الناس يعتقدون 3GB لها هو أن يظهر OS 3GB الحرة عندما يكون لديهم حقا 4GB من ذاكرة الوصول العشوائي النظام.

ولها RAM الإجمالي ل4GB. حتى إذا كان لديك بطاقة فيديو 1 غيغابايت أن تحصي كجزء من ذاكرة الوصول العشوائي مجموع ينظر إليها من قبل نظام التشغيل 32BIT و.

و4Gig لا 3 لا 2 حصلت عليه؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top