2011-09-02 3 views
2

매우 큰 메모리 요구 사항이있는 32 비트 응용 프로그램이 있습니다.주소 Windowing Extension

나는 Address Windowing Extension이라는 것을 발견했습니다.

그러나 사용 방법과 관련하여 많은 정보를 찾지 못했고이를 사용하면서 어떤 단점과 문제점을 겪었습니까?

답변

0
이 그것은이 64bit에서 Windows 버전에서 작동하지해야
  • (여기 읽어 http://msdn.microsoft.com/en-us/library/aa366778.aspx 인텔과 PAE의 AMD의 사양이 - 64 아키텍처하지만 마이크로 소프트의 PAE합니다 (API)의 소프트웨어 계층라는 AWE를 지원하지 않습니다이있다
      64 비트 Windows 버전에서는 지원되지 않으므로 Windows Vista 64 비트는 32 비트 응용 프로그램의 경우 4 GiB 이상의 RAM을 특성 부여 할 수 없습니다.).
    • Windows 32 비트에서도 사용 가능한 메모리 양에 "라이센스"제한이 있습니다 (동일한 페이지에는 모든 제한이 표시됨).
    • 그리고 명확하게 그것은 기존의 잘 8086
  • +0

    아, 64 비트 OS 지원은 나를위한 딜 브레이커가 아닙니다. – ronag

    +0

    정말로 많은 메모리가 필요하다면 프로그램을 64 비트로 변환해야합니다 (특히 "기존 라이브러리"를 지원해야하는 경우에는 복잡 할 수 있습니다). – xanatos

    +0

    불행히도 저는 32 비트의 타사 구성 요소에 의존합니다 비트. – ronag

    0

    진실에 EMS를 사용하여 같은거야 :-) 프로그램 복잡 당신은 윈도우 OS 64 비트 내부에서 실행되는 32 비트 응용 프로그램에서 AWE를 사용할 수 있다는 것입니다, 그리고 돈 PAE가 필요하지 않습니다. 예를 들어 MS SQL Server (2012 버전 이전)는이 모드에서 구성 할 수 있습니다.

    매우 구체적인 요구 사항이 없으면 64 비트로 이식하는 것이 더 좋은 옵션 일 것입니다.

    당신은 몇 가지 disvantages 있습니다 SeLockMemoryPrivilege

  • 메모리는 다른 프로세스와 공유 할 수 없습니다와 함께 사용자와 실행

    • 필요합니다. 실제 메모리에 할당됩니다. OS 및 기타 응용 프로그램에 더 적은 메모리를 남겨 둡니다 (AllocateUserPhysicalPages).
    • 이러한 메모리에 액세스하려면 가상 주소가 필요합니다. 그래서 당신은 LARGE_ADDRESS_AWARE 플래그로 4GiB의 메모리 윈도우를 가질 수 있습니다.
    • 더 많은 4GiB에 액세스하려면 해당 실제 페이지 (MapUserPhysicalPages)를 매핑/매핑 해제해야합니다.

    article은 1999 년부터 이러한 API를 사용하는 방법을 설명합니다.