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

 

  • 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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1264
» 메모리 관리 아키텍처 – 프로세스 주소 공간 jevida(강성욱) 2016.09.28 1393
1785 메모리 관리 아키텍처 – 메모리 아키텍처 jevida(강성욱) 2016.09.28 1916
1784 데이터 압축 상태에 대한 개체 크기 예상 jevida(강성욱) 2016.09.28 1404
1783 sp_MSforeachdb, sp_MSforeachtable 프로시저 활용하기 jevida(강성욱) 2016.09.28 3115
1782 SQL Server 쿼리 처리 아키텍처_분산 쿼리 아키텍처 jevida(강성욱) 2016.09.28 1183
1781 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 인덱스 작업 jevida(강성욱) 2016.09.28 1385
1780 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 처리 수준 jevida(강성욱) 2016.09.28 1930
1779 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 jevida(강성욱) 2016.09.28 1815
1778 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - Preparing SQL Statements jevida(강성욱) 2016.09.28 1042
1777 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 강제 매개 변수화 jevida(강성욱) 2016.09.28 1028
1776 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 단순 매개 변수화 jevida(강성욱) 2016.09.28 917
1775 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 매개 변수 및 실행 계획 재사용 jevida(강성욱) 2016.09.28 1141
1774 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 jevida(강성욱) 2016.09.28 1467
1773 DMV를 이용한 캐시된 저장 프로시저 통계 정보 확인 jevida(강성욱) 2016.09.28 1032
1772 SQL Server 쿼리 처리 아키텍처_저장 프로시저 및 트리거 실행 jevida(강성욱) 2016.09.27 971
1771 SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (4/4) – 분산형 분할 뷰(View) 확인 jevida(강성욱) 2016.09.27 1367
1770 SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (3/4) – 뷰(View)의 인덱스 확인 jevida(강성욱) 2016.09.27 995
1769 SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (2/4) – 뷰(View) 확인 jevida(강성욱) 2016.09.27 1470
1768 SQL Server 쿼리 처리 아키텍처 _ SQL 문 처리 (1/4) – SQL 문 최적화 및 Worktables jevida(강성욱) 2016.09.27 959
1767 SQL Server DMV를 이용한 통계 정보 확인 jevida(강성욱) 2016.09.27 1807





XE Login