메모리 관리 아키텍처 – 프로세스 주소 공간

 

  • 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 이상의 메모리를 처리할 수 없다.

 

[참고자료]

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

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 31524
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16319
1794 메모리 관리 아키텍처 – NUMA 지원 방법 jevida(강성욱) 2016.09.29 1615
1793 메모리 관리 아키텍처 – NUMA(Non-Uniform Memory Access)이해 jevida(강성욱) 2016.09.29 1497
1792 메모리 관리 아키텍처 – Hot Add 메모리 jevida(강성욱) 2016.09.28 972
1791 메모리 관리 아키텍처 – 버퍼 관리_페이지 쓰기 jevida(강성욱) 2016.09.28 1120
1790 메모리 관리 아키텍처 – 버퍼 관리_페이지 읽기 jevida(강성욱) 2016.09.28 1304
1789 메모리 관리 아키텍처 – 버퍼 관리 jevida(강성욱) 2016.09.28 1924
1788 메모리 관리 아키텍처 – Min/Max Server Memory 효과 jevida(강성욱) 2016.09.28 2629
1787 메모리 관리 아키텍처 – 동적 메모리 관리 jevida(강성욱) 2016.09.28 1405
» 메모리 관리 아키텍처 – 프로세스 주소 공간 jevida(강성욱) 2016.09.28 1413
1785 메모리 관리 아키텍처 – 메모리 아키텍처 jevida(강성욱) 2016.09.28 1940
1784 데이터 압축 상태에 대한 개체 크기 예상 jevida(강성욱) 2016.09.28 1417
1783 sp_MSforeachdb, sp_MSforeachtable 프로시저 활용하기 jevida(강성욱) 2016.09.28 3302
1782 SQL Server 쿼리 처리 아키텍처_분산 쿼리 아키텍처 jevida(강성욱) 2016.09.28 1202
1781 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 인덱스 작업 jevida(강성욱) 2016.09.28 1432
1780 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 처리 수준 jevida(강성욱) 2016.09.28 1961
1779 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 jevida(강성욱) 2016.09.28 1832
1778 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - Preparing SQL Statements jevida(강성욱) 2016.09.28 1064
1777 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 강제 매개 변수화 jevida(강성욱) 2016.09.28 1054
1776 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 단순 매개 변수화 jevida(강성욱) 2016.09.28 936
1775 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 매개 변수 및 실행 계획 재사용 jevida(강성욱) 2016.09.28 1159





XE Login