엔터프라이즈 메모리 아키텍처 개요
EMA(엔터프라이즈 메모리 아키텍처)는 4GT(4GB 조정)라고 알려진 응용 프로그램 메모리 조정과 PAE(실제 주소 확장) X86이라는 두 가지 종류의 메모리 향상을 지원합니다.
1. 4GT Architecture
4GT는 컴퓨터상에서 가상주소을 사용할 수 있도록 메모리 관리자에서 할당하는 방법이다.
아래의 그림을 참조하세요.
4GT Architecture
응용프로그램이나 커널에서 가상 메모리 공간을 사용하기위한 요청을 메모리관리자는 요청한 메모리 공간이 실제 메모리의 어디에 있는지 확인하게 될것이다.
가상주소를 물리주소로 변환하는 정보는 페이지 테이블에 유지되고 있다. 또 커널 가상 주소 공간도 들어있다.
변환데이터의 사용은 메모리관리자가 접근하는 데이터다.
4GT architecture와 관련된 구성요소를 설명하고 있다.
Components of the 4GT Architecture
Component |
Description |
Kernel or User Application |
사용자모드 응용프로그램이나 커널 프로세스는 지정된 가상 주소 공간을 요청한다. |
Memory Manager |
메모리 조직, 메모리 할당의 추적을 담당하는 운영체제 구성요소이다. |
4 GB Virtual Address Space |
가상주소는 운영체제에 의해서 기본적으로 인지되는 메로리의 4GT를 표현한다. 4GT를 사용하면 사용자모드 응용프로그램을 위한 3GB와 커널에서 사용하기 위한 1GB를 분리한다. 커널의1GB는 페이지 테이블을 포함하게 된다. |
Page Table |
커널의 가상주소공간의 일부분을 가상메모리주소를 물리주소로 변환정보를 유지하고 있다. |
Paging File |
메모리에 데이터를 저장하는 대신에 하드디스크상의 파일에 저장되어지는 파일이다. |
RAM |
물리메모리에 데이터를 저장한다. |
2. 4GT Processes and Interactions
4GT는 기본적으로 사용할 수 없다.
4GT를 사용하고자 한다면 boot.ini파일에 /3GB 스위치 옵션을 추가하면 된다.
Virtual Memory Allocation
3. 4GT and PAE X86
PAE(실제 주소 확장) X86 및 4GT(4GB 조정)라고도 하는 응용 프로그램 메모리 조정 기능은 Intel 프로세서를 사용하는 컴퓨터를 위한 보조 기술입니다.
응용 프로그램 메모리 조정 기능은 운영 체제에 가상 메모리가 덜 사용되게 함으로써 응용 프로그램이 좀더 많은 가상 메모리를 사용할 수 있도록 합니다. PAE X86을 사용하면 Intel Pentium Pro 프로세서 이상 및 Windows Server 2003, Enterprise Edition 또는 Windows Server 2003, Datacenter Edition가 설치된 컴퓨터에서 실행되는 AWE(Address Windowing Extensions) API 집합을 사용하는 소프트웨어가 응용 프로그램의 가상 주소 공간에 보다 많은 실제 메모리를 매핑할 수 있게 됩니다.
예를 들어 컴퓨터에 Pentium Pro 프로세서 이상 및 16GB의 실제 메모리(응용 프로그램 메모리 조정 기능이 지원하는 최대 양)가 있으면 응용 프로그램 메모리 조정 기능을 사용하여 3GB의 가상 메모리를 응용 프로그램에 할당할 수 있습니다(1GB는 운영 체제용). 이렇게 하면 지정된 응용 프로그램은 해당 실제 메모리를 잠글 수 있습니다. 응용 프로그램은 AWE API 집합 및 PAE X86 커널을 사용하여 나머지 12GB의 실제 메모리를 캐싱에 사용할 수 있습니다. 결과적으로 응용 프로그램은 최대 15GB의 실제 메모리에 액세스할 수 있습니다.
그러나 중요한 사실하나는 4GT와 PAE X86을 동시에 사용한다면 32GB의 실제 물리메모리가 있다하더라도 최대 사용할 수 있는 공간은 16GB만 인식하게 됩니다.
4. 응용 프로그램 메모리 조정 기능을 사용하려면
1. |
Windows 탐색기를 엽니다. |
2. |
도구 메뉴에서 폴더 옵션을 클릭합니다. |
3. |
보기 탭에서 숨김 파일 및 폴더 표시를 클릭하고 보호된 운영 체제 파일 숨기기 확인란의 선택을 취소한 다음 확인을 클릭합니다. 경고 대화 상자가 나타나면 예를 클릭하여 계속합니다. |
4. |
루트 폴더(예: C:)에서 Boot.ini 파일을 찾아 읽기 전용 특성을 제거합니다. |
5. |
Boot.ini 파일을 연 다음 Windows Server 2003, Datacenter Edition의 경우 다음 예에 표시된 것처럼 ARC 경로에 3GB 매개 변수를 추가합니다. multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /3GB |
6. |
파일 메뉴에서 저장을 클릭합니다. |
7. |
Boot.ini 파일의 읽기 전용 특성을 복원합니다. |
8. |
변경 내용을 적용하려면 컴퓨터를 다시 시작합니다. |
PAE(실제 주소 확장)
1. |
Windows 탐색기를 엽니다. |
2. |
도구 메뉴에서 폴더 옵션을 클릭합니다. |
3. |
보기 탭에서 숨김 파일 및 폴더 표시를 클릭하고 보호된 운영 체제 파일 숨기기 확인란 선택을 취소한 다음 확인을 클릭합니다. 경고 대화 상자가 나타나면 예를 클릭하여 계속합니다. |
4. |
루트 폴더(예: C:)에서 Boot.ini 파일을 찾아 읽기 전용 특성을 제거합니다. |
5. |
Boot.ini 파일을 열고 다음 Windows Server 2003, Datacenter Edition 예에 표시된 것처럼 ARC 경로에 /PAE 매개 변수를 추가합니다. multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /PAE |
6. |
파일 메뉴에서 저장을 클릭합니다. |
7. |
Boot.ini 파일의 읽기 전용 특성을 복원합니다. |
8. |
변경 내용을 적용하려면 컴퓨터를 다시 시작합니다. |
5.메모리 관리자
가상메모리관리자는 운영체제나 응용 프로그램에서 사용되는 가상메모리 주소을 실제 메모리 주소로 패핑(사상)해 주는 역할을 합니다. 가상 메모리에서 물리적인 메모리의 변환은 투명하게 진행됩니다. 사용자 모드 프로세스는 실제메모리에 직접 쓸 수 없다는 사실과 결코 자신의 데이터가 실제 메모리 어디에 상주하는지 알 수 없읍니다. 사용자 모드 프로세스는 한 블럭 메모리를 요청하실 수 있으며 쓰기를 합니다. 메모리 위치에 기록된 데이터를 실제 메모리를 쓸 수도 있고 또는 페이징 파일을 작성할 수 도 있읍니다.
페이징 파일 (스왑 파일이라고도 함)은 하드 디스크에 있는 파일로서 메모리 관리자는 메모리에 두기 적합하지 않은 데이터를 페이징 파일에 둡니다. 메모리 관리자 새 데이터을 저장하기 위한 공간을 만들고 페이징 파일에서 실제 메모리로 이동 시킵니다. 32Bit 버전의 윈도우는 232 바이트(4GT) 주소를 공간을 사용합니다. PAE X86은 32bit를 64bit 주소모드로 변경합니다.
PAE X86은 추가 메모리를 사용 할 수 있도록 만들어 준다. x86, 만약에 총 메모리보다 많은 메모리를 요구 하는 모든 응용 프로그램의 데이터는 실제 메모리보다 페이징 메모리를 사용합니다.
페이징 프로세스를 사용하면 실제 물리적 메모리 한계를 극복 할 수 있지만 데이터를 디스크에 기록하거나 검색하기 때문에 성능에 직접적인 영향을 미칠 수 있읍니다.
6. 페이지 테이블 항목
메모리 관리자는 변환하고, 추적, 구성하게 됩니다. 이 때문에 메모리 관리자 색인을 사용 해야합니다. 실제 메모리 또는 패이징 파일 어디에있는 데이터인지 인덱스를 사용합니다.
응용프로그램이 데이터를 요청했을 때 메모리 관리자는 데이터가 어디에 존재하는지 확인하기 위해서 인덱스를 참조 합니다.
아래 그림은 간단한 변환과정을 나타냅니다.