가상 주소 공간

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

가상 주소 공간(영어: Virtual Address Space; VAS)은 가상 메모리 기법으로 제공되는 주소 공간으로서, 프로세스의 관점에서 사용하는 주소이다.

오늘날 대부분의 운영 체제에는 가상 메모리 기법이 적용되어 있다. 가상 메모리에서의 주소 공간, 즉 가상 주소 공간은 프로세스가 참조할 수 있는 주소들의 범위이며, 하나의 프로세스 당 하나의 가상 주소 공간이 주어진다. 일반적으로 스레드는 프로세스 내의 주소 공간을 공유한다.

주소 공간의 크기는 주소 버스의 크기에 따라 달라진다. 예를 들어 주소 버스가 32비트인 시스템에서 주소 공간의 크기는 개의 서로 다른 주소에 대한 식별자를 만들 수 있으므로 0부터 까지의 주소 범위를 가진다.

실제[편집]

32비트 윈도에서는 기본적으로 응용 프로그램에 4GB의 가상 주소 공간이 주어진다. 이 중에서 2GB(0x00000000 ~ 0x7FFFFFFF)는 사용자 모드 공간(응용 프로그램마다 독립적으로 사용 가능한 공간)이고, 나머지 2GB(0x80000000 ~ 0xFFFFFFFF)는 운영 체제에서 사용하는 커널 가상 주소 공간이다.[1] boot.ini에 '/3GB' 옵션을 붙여 윈도를 시작하면 개별 응용 프로그램에서 3GB까지 사용자 모드 가상 주소 공간을 사용할 수 있다. 그러한 응용 프로그램을 개발할 때에는 IMAGE_FILE_LARGE_ADDRESS_AWARE 옵션을 주어야 한다.[2]

64비트 윈도에서는 기본적으로 8GB의 사용자 모드 공간이 주어진다. 단, /LARGEADDRESSAWARE:NO 옵션을 주어 링크하면 인위적으로 2GB로 제한할 수 있다.[3][4] 64비트 윈도에서 32비트 프로그램을 구동할 때 /LARGEADDRESSAWARE:YES 옵션을 주면 사용자 모드 공간을 4GB까지 사용할 수 있다.[5]

참고[편집]

  1. (영어) http://msdn.microsoft.com/en-us/library/aa366912(VS.85).aspx
  2. (영어) http://msdn.microsoft.com/en-us/library/ms680349(v=VS.85).aspx
  3. http://msdn.microsoft.com/en-us/library/wz223b1z%28v=VS.100%29.aspx
  4. http://msdn.microsoft.com/en-us/library/aa384271%28VS.85%29.aspx
  5. http://msdn.microsoft.com/en-us/library/wz223b1z(VS.80).aspx

같이 보기[편집]