메모리 관리 아키텍처 – 프로세스 주소 공간
- Version : SQL Server 2005, 2008, 2008R2
모든 32비트 응용프로그램은 4GB의 프로세스 주소 공간이 있다. (32비트의 주소 공간은 4GB의 메모리를 매핑 할 수 있음).
8-bit | 2^8 | 256bits |
16-bit | 2^16 | 64KB |
32-bit | 2^32 | 4GB |
64-bit | 2^64 | 2EB |
Windows 운영체제에서 응용 프로그램은 커널 모드와 사용자 모드의 공간으로 나누어 지며 사용자 모드는 2GB의 공간이 할당 되며 액세스 할 수 있다. 응용 프로그램에서 소유한 모든 스레드는 동일한 사용자 모드 가상 주소 공간을 공유 한다.
Windows Server 2000 이후 버전에서는 커널 주소의 공간을 1G로 제한하고 응용 프로그램에 3GB의 프로세스 주소 공간에 대한 액세스를 제공 할 수 있는 boot.ini 스위치가 있다.
AWE(address Windowing Extensions)는 운영체제가 지원하는 최대 실제 메모리에 대한 액세스를 허용하여 32비트 응용 프로그램의 기능을 확장 한다(Physical Address Extend, PAE). AWE는 최대 64GB를 매핑(2^36bit로 확장)하여 사용 할 수 있다. 응용 프로그램 버퍼 풀과 AWE로 매핑된 메모리 사이의 매핑은 Windows 가상 메모리 테이블 조작을 통해서 처리 된다.
3GB의 사용자 모드 프로세스 공간에 대한 지원을 사용하려면 boot.ini 파일에 /3gb 매개 변수를 추가하고 컴퓨터를 다시 부팅하여 /3gb 매개 변수를 적용해야 한다. 이 매개 변수를 설정하면 사용자 응용 프로그램 스레드가 3GB 프로세스 주소 공간을 처리 할 수 있으며 운영체제를 위해 1GB 프로세스 주소 공간이 예약 된다.
컴퓨터에 16GB 이상의 실제 메모리가 있더라도 운영 체제는 시스템 목적으로 2GB의 프로세스 주소 공간이 필요하므로 2GB 사용자 모드의 주소공간만 지원한다. AWE가 16GB를 초과하는 메모리 범위를 사용 할 수 있게 하려면 boot.ini 파일에 /3gb 매개 변수를 사용하지 않아야 한다. 3gb 옵션을 사용할 경우 운영체제는 16GB 이상의 메모리를 처리할 수 없다.
[참고자료]
- pae x86 work msdn : http://technet.microsoft.com/en-us/library/cc736309(v=ws.10).aspx
- PAE, 4GT, AWE 정리 : http://sqlmvp.kr/140151085333
- x86 Linear Address Space Paging Revisited :
http://blogs.msdn.com/b/reiley/archive/2012/01/07/x86-linear-address-space-paging-revisited.aspx
- 한국 마이크로소프트 팀 블로그 :
http://blogs.technet.com/b/koreapartner/archive/2009/05/12/windows-faq.aspx
2013-05-28 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
메모리 관리 아키텍처 – Min/Max Server Memory 효과 (0) | 2015.07.22 |
---|---|
메모리 관리 아키텍처 – 동적 메모리 관리 (0) | 2015.07.22 |
메모리 관리 아키텍처 – 메모리 아키텍처 (0) | 2015.07.22 |
데이터 압축 상태에 대한 개체 크기 예상 (0) | 2015.07.22 |
sp_MSforeachdb, sp_MSforeachtable 프로시저 활용하기 (0) | 2015.07.22 |