응용 프로그램의 4GT RAM 조정 기능 사용에 대한 정보

기술 자료 번역 기술 자료 번역
기술 자료: 171793 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR171793
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 Windows NT Server Enterprise Edition (Windows NT Server/E) 버전 4.0의 4GT RAM 조정 기능을 설명합니다. 표준 Windows NT Server의 경우 프로세스당 주소가 2GB RAM으로 제한됩니다. Windows NT Server/E의 4GT 기능은 API를 새로 도입하지 않고 주소 제한을 3GB까지 증가시킵니다. 4GT는 Windows NT 커널에 할당된 사용 가능한 RAM의 양을 2GB에서 1GB로 줄임으로써 이를 수행합니다.

본 문서의 대부분은 해당 제품의 릴리스 정보에서 발췌하였습니다.

추가 정보

Windows NT Server 플랫폼용으로 개발된 응용 프로그램은 크기와 성능 요구 수준 면에서 계속 성장하고 있습니다. 데이터베이스 관리 시스템(DBMS)과 같은 I/O 집약적 응용 프로그램의 경우 더 큰 프로세스 공간을 사용하면 I/O의 미디어 액세스 시간을 줄이기 때문에 성능을 상당히 높이는 장점을 얻을 수 있습니다. 현재 Windows NT Server 제품에 대한 프로세서당 주소 제한은 2GB입니다. 4GT는 API를 새로 도입하지 않고 이를 3GB까지 증가시킵니다. 4GT는 Windows NT 커널에 할당된 사용 가능한 RAM의 양을 2GB에서 1GB로 줄임으로써 이를 수행합니다.

이 기능은 2GB 이상의 실제 RAM을 장착한 성능이 우수한 컴퓨터에서 실행하고 대용량 주소 공간을 활용할 수 있는 응용 프로그램에 유용합니다. 개발자와 응용 프로그램에 대한 영향을 아래에 요약하였습니다.

Windows NT Server/E는 Intel 아키텍처 서버에서만 4GT를 지원합니다.

참고: 4GT는 32비트 프로세서에서만 작동하기 때문에 Windows NT Server의 주소 지정 가능 메모리를 현재 제한된 4GB를 넘도록 증가시키지 않습니다.

4GT용 응용 프로그램 작성

사용자 모드 주소 선택:

4GT를 사용하는 경우 커널 모드 주소와 사용자 모드 주소를 구별하기 위해 최고 비트의 가상 주소를 사용할 수 없습니다.

메모리 할당 문제:

일부 동적 연결 라이브러리(DLL) 파일은 2GB 경계 부근에서 로드하기 때문에 VirtualAlloc를 사용하여 인접 메모리를 할당할 수 없는 2GB 공간 영역이 존재합니다.

커널 모드에서의 가시 효과:

커널 모드 코드는 사용자/커널 경계가 더 이상 0x80000000 또는 기타 모든 수에 존재한다고 판단하지 않습니다. 커널 공간이 더 이상 0x80000000에서 시작한다고 판단하지 않는 새로운 헤더를 사용하여 ProbeForRead 또는 ProbeForWrite 매크로를 사용하는 코드를 다시 작성해야 합니다.

응용 프로그램에 4GT 지원 사용

4GT 지원을 위한 변경은 시스템 및 응용 프로그램 수준 모두에서 수행합니다.

시스템 변경:

Windows NT Server/E를 설치한 다음 4GT를 사용할 수 있도록 Boot.ini 파일을 수정해야 합니다. 4GT를 사용하려면 간단히 /3GB 매개 변수를 시작 줄에 추가합니다.

참고: 이 변경은 Windows NT Server/E를 사용하는 경우에만 효과가 있습니다. 표준 Windows NT의 경우 이 플래그가 커널을 재할당하지만 응용 프로그램은 2GB 이상 액세스할 수 없습니다.

예제:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Server Version 4.00" /3GB
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Server Version 4.00 [VGA mode]" /basevideo /sos
참고: 위 예제에서 일부 줄은 읽기 쉽도록 다음 줄에 나뉘어 있습니다.

응용 프로그램 변경:

4GT 지원에는 새로운 API가 필요하지 않습니다. 대신, 아래의 "효과적인 4GT 지원을 위한 팁"에 설명한 예외를 제외하고 메모리 할당이 동일하게 유지됩니다. 그러나, 모든 응용 프로그램에 자동으로 3GB의 주소 공간을 제공하는 것은 효과적이지 않습니다. 4GT를 선택적으로 제공하기 위해 다음 방식을 구현하였습니다.
  • 3GB 주소 공간을 인식해야 하는 실행 파일의 이미지 헤더에는 IMAGE_FILE_LARGE_ADDRESS_AWARE 비트를 설정해야 합니다. 이는 Windows NT Server/E CD의 Support 폴더에 포함되어 있는 Imagecfg 도구를 사용하여 수행할 수 있습니다. 예를 들어, DBMSApp.exe의 대상 파일을 수정하려면 명령 프롬프트에 다음을 입력합니다.
    Imagecfg -l DBMSApp.exe
참고: 링커에도 실행 파일을 IMAGE_FILE_LARGE_ADDRESS_AWARE 비트와 연결시키기 위한 새로운 스위치(/ LARGEADDRESSAWARE)가 있습니다. 이 비트를 설정하고 4GT를 지원하지 않는 시스템에서 응용 프로그램을 실행하면 응용 프로그램에 아무 효과가 없습니다.

효과적인 4GT 지원을 위한 팁

다음 지침은 개발자가 응용 프로그램에 4GT 지원을 적용할 때 검토해야 하는 변경 내용을 요약한 것입니다.
  • GlobalMemoryStatus를 사용하여 전체 사용자의 가상 공간 크기를 얻으십시오. "#define HIGHEST_USER_ADDRESS 0xC0000000"와 같은 하드웨어 관련 상수 정의의 사용을 피하십시오. 런타임 시 실제 값을 찾아보십시오.

  • 포인터를 통한 서명 비교를 피하십시오. 이러한 이유로 인해 4GT 가능 시스템에서 일부 응용 프로그램 간에 충돌이 발생할 수 있습니다. "if (pointer > 40000000)"와 같은 조건은 2GB 이상의 포인터의 경우 잘못된 것일 수 있습니다.

  • 태그 항목에 최고 비트를 사용하는 코드(데이터 값에 대한 주소 값)에는 오류가 발생합니다. 예를 들어, 32비트 워드는 0x80000000 이하인 경우 사용자 모드 주소로, 그 이상인 경우 오류 코드로 판단됩니다. 이는 더 이상 작동하지 않습니다.

페이징 파일의 크기 설정

4GT 옵션을 사용하고 있고 3GB 이상의 실제 메모리를 갖는 시스템을 보유한 경우 페이징 파일의 기본 크기를 변경할 필요가 있습니다. 이 때 제어판의 시스템 도구를 사용하여 변경합니다. Windows NT 3.51에서는 기본 페이징 파일 크기가 실제 메모리 보다 일반적으로 11MB 더 큽니다. Windows NT 4.0에서는 기본 페이징 파일의 크기가 시스템의 실제 메모리량과 동일합니다. 4GB 컴퓨터의 경우 페이징 파일의 크기가 4.01GB가 됩니다. 전체 크기가 4GB라는 것을 감안할 때 이러한 상황에서는 이 페이징 파일의 효율성이 최소가 될 수 있습니다. 따라서 256MB의 페이징 파일로 디스크 공간을 더 효율적으로 사용할 수 있습니다. 그러나 페이징 크기가 더 작아지면 응용 프로그램을 위한 전체 메모리 커밋 크기에 영향을 미칠 수 있습니다. 4GT 옵션을 적용한 응용 프로그램의 독립 소프트웨어 공급업체(ISV)에 이러한 설정에 대해 문의해야 합니다.

속성

기술 자료: 171793 - 마지막 검토: 2000년 4월 7일 금요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows NT Server 4.0 Enterprise Edition
키워드:?
kbhowto kbinfo ntsetup ntsrv KB171793

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com