문제

64 비트 Windows OS에서 사용 가능한 사용자 가상 주소 공간은 8 Terra 바이트임을 알았습니다. 그러나 우리 가이 실행중인 프로그램이 32 비트 호환성 모드에서 실행중인 경우 이러한 많은 사용자 공간이 여전히 사용할 수 있습니까? 아니면 일반적인 32 비트 OS처럼 행동하고 2GB 사용자 주소 공간 만 제공합니까?

도움이 되었습니까?

해결책

Microsoft에는 다양한 한계를 보여주는 차트가 있습니다. Windows 릴리스의 메모리 제한

사용자 모드 가상 주소 공간 만 요약합니다.

  • 32 비트 창 :
    • 32 비트 프로세스 : 기본적으로 2GB; 3GB /LARGEADDRESSAWARE:YES 및 4GT
  • 64 비트 Windows (x64 아키텍처) :
    • 32 비트 프로세스 : 기본적으로 2GB; 4GB /LARGEADDRESSAWARE:YES
    • 64 비트 프로세스 : 기본적으로 8 TB; 2GB /LARGEADDRESSAWARE:NO

4GT는 4 기가 바이트 튜닝입니다.

  • XP : /3GB boot.ini 스위치
  • 추억: bcdedit /set increaseuserva 3072

Mark Russinovich는 다음과 같은 많은 한계를 설명하는 블로그 게시물을 만들었습니다. Windows의 한계를 밀기 : 가상 메모리

다른 팁

프로세스는 32 비트 프로세스로 실행될 때 4GB 가상 주소 공간 만 볼 수 있습니다. 더 높은 것을 다룰 수 없습니다.

나의 원래 대답은 꽤 나빴다. Jaredpar가 꽤 잘한 내용을 설명하는 링크가 있습니다.

http://msdn.microsoft.com/en-us/library/ms189334.aspx

하드웨어와 관련하여 호환성 모드에서 실행할 때 (예 : IA32_EFER.LMA가 설정되고 CS의 세그먼트 디스크립터에서는 L 비트가 명확합니다) 세그먼트는 32 비트 세그먼트처럼 행동합니다. 그건:

  • 세그먼트베이스는 32 비트로 제한됩니다.
  • 세그먼트 한계는 32 비트로 제한됩니다 (G 비트 사용).

이렇게하면 효과적으로 4GB의 가상 주소로 제한됩니다. OS가 다양한 모드에서 가상 메모리를 파티션하는 방법에 익숙하지는 않지만 이것 하드웨어 제한입니다. (죄송합니다 ... 저는 OS 전문가가 아니라 하드웨어 사람입니다)

프로그램이 WOW64 서브 시스템에서 32 비트 프로세스로 실행되는 경우 실제 32 비트 OS에서 볼 수있는 것과 동일한 주소 공간이 표시됩니다. 특별한 옵션이 없으면 32 비트 프로세스에는 2GB의 메모리가 있습니다.

유일한 차이점은 당신이 사용하는 경우 불가능한 메모리입니다. 대단한 드레스웨어 옵션. 정상적인 32 비트 프로세스에서는 3GB의 주소 지정 가능한 메모리를 허용합니다. WOW64 프로세스에서 최대 4GB를 볼 수 있습니다 (원천)

64 비트 기계/OS를 사용하여 IIS 6.0+에서 32 비트 프로세스를 실행하면 프로세스가 최대 4GB의 메모리를 해결할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top