Windows에서 일반적인 상황에서 32 비트 프로세스는 2GB의 RAM (또는 boot.ini 파일의 특수 스위치를 사용하여 3GB)에만 액세스 할 수 있습니다. 64 비트 운영 체제에서 32 비트 프로세스를 실행할 때 사용 가능한 메모리는 얼마나됩니까? 이를 변경할 수있는 특수 스위치 또는 설정이 있습니까?
답변:
기본적으로 2GB. 응용 프로그램이 큰 주소 공간을 인식하는 경우 (/ LARGEADDRESSAWARE와 연결됨) 4GB (3GB가 아님, http://msdn.microsoft.com/en-us/library/aa366778.aspx 참조 )
많은 응용 프로그램이 포인터의 최상위 비트가 0이되도록 의존하기 때문에 여전히 2GB로 제한됩니다.
since many application depends on the top bit of pointers to be zero
프로세스의 주소 공간을 순회하는 동안 주소 지정 체계의 32 번째 비트가 고려되거나 사용되지 않음을 의미합니다.
4GB에서 / LARGEADDRESSAWARE로 링크하는 경우 시스템에서 사용중인 것을 뺀 값입니다.
32 비트 응용 프로그램이 많으면 wow64 하위 시스템이 4G 이상의 메모리 어디에서나 매핑 할 수 있으므로 충분한 메모리가있는 64 비트 창에서 더 많은 32 비트 응용 프로그램을 실행할 수 있다는 사실을 아무도 접하지 않는 것 같습니다. 기본 32 비트 시스템보다.
64 비트 OS에서 단일 32 비트 프로세스는 2Gb로 제한됩니다. 그러나 IMAGE_FILE_LARGE_ADDRESS_AWARE
비트 세트 가있는 EXE 파일로 컴파일 된 경우 2Gb가 아닌 4GB로 제한됩니다. https://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx 참조
특수 부팅 플래그, 3GB, /3GB
스위치 또는 /userva
모두 32 비트 운영 체제에 대한 내용이며 64 비트 Windows에는 적용되지 않습니다.
자세한 내용은 https://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx 를 참조하십시오.
32 비트 운영 체제에 관해서는 생각과 달리 32 비트 운영 체제에 대한 물리적 제한은 4GB입니다. 예를 들어 Microsoft Windows Server 2008 32 비트와 같은 32 비트 서버 운영 체제는 최대 64GB에 액세스 할 수 있습니다.(Windows Server 2008 Enterprise 및 Datacenter 에디션) – 인텔이 펜티엄 프로에서 처음 소개하고 나중에 AMD가 애슬론 프로세서에서 처음 소개 한 PAE (물리적 주소 확장)를 통해 세 가지 수준의 페이지 테이블 계층을 정의합니다. 32 비트가 아닌 64 비트의 테이블 항목을 사용하여 이러한 CPU가 4 기가 바이트보다 큰 물리적 주소 공간에 직접 액세스 할 수 있습니다. 따라서 이론적으로 32 비트 OS는 이론적으로 2 ^ 64 바이트 또는 17,179,869,184 기가 바이트에 액세스 할 수 있지만 세그먼트는 4GB로 제한됩니다. 그러나 마케팅상의 이유로 Microsoft는 서버가 아닌 운영 체제에서 액세스 가능한 최대 메모리를 4GB, 심지어는 3GB로 제한했습니다. 따라서 단일 프로세스는 32 비트 OS에서 4GB 이상에 액세스 할 수 있으며 Microsoft SQL 서버가 그 예입니다.
64 비트 Windows에서 32 비트 프로세스는 공유 커널의 가상 주소 공간 ( 시스템 공간 이라고도 함)을 사용하는 데있어 64 비트 프로세스와 비교할 때 단점이 없습니다. ) . 64 비트 Windows에서 모든 프로세스 (64 비트 또는 32 비트)는 동일한 64 비트 시스템 공간을 공유합니다.
시스템 공간이 모든 프로세스 에서 공유 된다는 사실을 감안할 때 32 비트 Windows 에서 많은 양의 핸들 (예 : 스레드, 세마포, 파일 등)을 생성하는 프로세스는 커널 개체에 의해 시스템 공간을 소비 하고 메모리가 부족할 수도 있습니다. 총 사용 가능한 메모리가 많은 경우. 반대로 64 비트 Windows 에서는 커널 공간이 64 비트이며 4GB로 제한되지 않습니다. 32 비트 응용 프로그램에서 만든 모든 시스템 호출은 사용자 모드에서 기본 64 비트 호출로 변환됩니다 .
제한은 2g 또는 3gb가 아니며 32 비트의 경우 4GB입니다.
사람들이 3GB라고 생각하는 이유는 실제로 4GB의 시스템 램이있을 때 OS가 3GB를 무료로 표시하기 때문입니다.
총 RAM은 4GB입니다. 따라서 32 비트 OS에서 보는 총 램의 일부로 계산되는 1GB 비디오 카드가있는 경우.
4Gig 아니 3 아니 2 아니?