데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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

 

  • 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
1791 메모리 관리 아키텍처 – 버퍼 관리_페이지 쓰기 jevida(강성욱) 2016.09.28 1056
1790 메모리 관리 아키텍처 – 버퍼 관리_페이지 읽기 jevida(강성욱) 2016.09.28 1250
1789 메모리 관리 아키텍처 – 버퍼 관리 jevida(강성욱) 2016.09.28 1818
1788 메모리 관리 아키텍처 – Min/Max Server Memory 효과 jevida(강성욱) 2016.09.28 2557
1787 메모리 관리 아키텍처 – 동적 메모리 관리 jevida(강성욱) 2016.09.28 1365
» 메모리 관리 아키텍처 – 프로세스 주소 공간 jevida(강성욱) 2016.09.28 1363
1785 메모리 관리 아키텍처 – 메모리 아키텍처 jevida(강성욱) 2016.09.28 1873
1784 데이터 압축 상태에 대한 개체 크기 예상 jevida(강성욱) 2016.09.28 1368
1783 sp_MSforeachdb, sp_MSforeachtable 프로시저 활용하기 jevida(강성욱) 2016.09.28 2887
1782 SQL Server 쿼리 처리 아키텍처_분산 쿼리 아키텍처 jevida(강성욱) 2016.09.28 1145
1781 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 인덱스 작업 jevida(강성욱) 2016.09.28 1341
1780 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 - 병렬 처리 수준 jevida(강성욱) 2016.09.28 1853
1779 SQL Server 쿼리 처리 아키텍처_병렬 쿼리 처리 jevida(강성욱) 2016.09.28 1791
1778 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - Preparing SQL Statements jevida(강성욱) 2016.09.28 1009
1777 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 강제 매개 변수화 jevida(강성욱) 2016.09.28 999
1776 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 단순 매개 변수화 jevida(강성욱) 2016.09.28 880
1775 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 - 매개 변수 및 실행 계획 재사용 jevida(강성욱) 2016.09.28 1098
1774 SQL Server 쿼리 처리 아키텍처_실행 계획 캐싱 및 다시 사용 jevida(강성욱) 2016.09.28 1440
1773 DMV를 이용한 캐시된 저장 프로시저 통계 정보 확인 jevida(강성욱) 2016.09.28 989
1772 SQL Server 쿼리 처리 아키텍처_저장 프로시저 및 트리거 실행 jevida(강성욱) 2016.09.27 941





XE Login