64 비트 운영 체제에서 32 비트 응용 프로그램 메모리 사용 경우 32 비트 응용

운영 체제가 64 비트 인 경우 32 비트 응용 프로그램에서 64 비트 메모리 (> 3.5GB)를 사용할 수 있습니까?



답변

앱이 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 버전에서만 사용할 수 있습니다.