답변:
앱이 AWE를 인식하는 경우 64 비트 앱보다 덜 효율적이지만 4Gb 이상의 주소 공간을 사용할 수 있습니다. PAE가 사용 가능하고 프로세스가이를 사용할 수있는 경우 32 비트 Windows 변형에서 32 비트 프로세스가 32 비트 주소 공간이 허용하는 것보다 많은 액세스를 할 수도 있습니다.
개별 32 비트 프로세스 (AWE에서 인식하지 못함) 는 일반적으로 3Gb (커널 관련 작업을 위해 예약 된 가상 주소 공간의 첫 번째 Gb ) 로 제한 되지만 여러 프로세스를 실행중인 경우 더 많은 프로세스를 사용할 수 있습니다 . 가상 주소 공간이 공유 되지 않기 때문에 total (각각 최대 3Gb, 총 메모리 허용) 을 사용할 수 있습니다 .
프로세스 당 한계 존재는 서비스 프로세스 대신 스레드 기반보다는 기초하는 경향 유닉스 환경에 더 도움이된다 (처리 자원을 하나의 공정 주에 다중 스레드 따라서 단일 3GB 가상 주소 공간을 공유하는) 일반적인 그대로 Windows에서 ( Windows 에서 새 프로세스를 시작하는 것은 상당히 비싸므로 스레드가 선호됩니다. 대부분의 Unix 환경에서는 새 프로세스를 시작하는 것이 새 스레드를 시작하는 것보다 훨씬 많은 리소스를 소비하지 않습니다) . 예를 들어, 하나의 프로세스 일 뿐이므로 3Gb 한도에 도달하기 때문에 SQL Server 만 실행하는 컴퓨터에는 그다지 도움이되지 않습니다 . 이 기능은 다음 주요 릴리스에서 제거 될 예정입니다) .
32 비트 프로세스뿐만 아니라 총 3Gb 이상을 사용할 수있는 OS는 디스크 캐싱에 사용되지 않은 메모리를 사용할 수 있으므로 프로세스가 그런 방식으로 파일을 열지 않는다고 가정하면 낭비되지 않을 수 있습니다. OS 에게이 작업을 귀찮게하지 말라고 말하십시오.
애플리케이션이 AWE를 사용하는 경우 yes입니다 (64 비트 OS로 제한되지는 않지만). 이를 사용하지 않으면 프로세스는 여전히 4GB 주소 공간으로 제한됩니다.
무슨 뜻인지에 따라
Windows 가정 중 ...
OS가 64 비트 인 경우 기본적으로 32 비트 프로세스는 2GB의 사용자 주소 가상 주소 공간을 얻습니다. .exe 파일의 PE 헤더에 IMAGE_FILE_LARGE_ADDRESS_AWARE 플래그가 표시되면 프로세스는 4GB의 사용자 주소 지정 가상 주소 공간을 얻습니다. 두 경우 모두 커널의 가상 주소 공간은 모든 프로세스에서 공유되므로 64 비트 프로세스와 동일합니다. 또한 IMAGE_FILE_LARGE_ADDRESS_AWARE 플래그를 설정하지 않은 64 비트 프로세스는 2GB의 사용자 가상 주소 공간에만 액세스 할 수 있습니다.
특수 부팅 플래그, 3GB, / 3GB 스위치 또는 / userva에 대한 정보는 모두 32 비트 운영 체제이며 64 비트 Windows에는 적용되지 않습니다.
이 내용은 Microsoft의 Windows 릴리스 용 메모리 제한 페이지 에서 매우 자세한 내용을 다루고 있습니다.
@David Spillett의 답변은 또 다른 요점을 다룹니다. 2GB의 사용자 공간으로 제한되는 여러 프로세스는 파일 캐시와 마찬가지로 사용 가능한 경우 여전히 많은 양의 RAM을 사용할 수 있습니다.
32 비트 OS의 32 비트 프로세스에는 4GB 주소 공간이 있으며이 중 2GB는 OS에서 예약하고 2GB는 프로세스에 사용 가능합니다.
OS (/ 3GB)에 지정할 수있는 스위치가있어 OS에 예약 된 양을 1GB로 변경하고 프로세스가 플래그를 인식하는 큰 주소로 자체 선언하는 경우에만 프로세스가 3GB를 가질 수 있습니다. 실행 파일
64 비트 OS에서 32 비트 프로세스는 큰 주소를 인식하는 경우 4GB를, 그렇지 않으면 2GB를 얻습니다.
이 모든 것은 비 AWE 인식 프로세스를위한 것입니다. 프로세스가 AWE를 사용할 수 있다면 다른 사람들이 말했듯이 큰 주소 공간을 사용할 수 있지만 64 비트 프로세스보다 덜 효율적입니다.
PAE는 32 비트 OS가 4GB 이상의 RAM을 사용할 수 있도록하지만 호환성 문제가 있으며 서비스 팩 중 하나에 의해 XP에서 비활성화되어 서버 OS 버전에서만 사용할 수 있습니다.