주소 공간
위키백과, 우리 모두의 백과사전.
컴퓨팅에서 주소 공간(住所 空間)은 분리된 주소의 범위를 정의하며, 각 주소 범위는 물리 메모리나 가상 메모리, 레지스터, 네트워크 호스트, 주변 기기, 디스크 섹터, 다른 논리적 실체나 물리적 실체에 상응한다. IANA[1]는 수많은 다양한 레지스트리들을 할당함으로써 이들이 각각 저만의 특정한 주소 공간을 관리할 수 있게 한다.
메모리 주소는 컴퓨터 메모리의 물리 위치를 파악하며, 데이터가 저장되는 위치를 가리킨다. 이러한 주소는 마을의 거리 주소와 비슷하며, 다시 말해 마치 사람이 사는 주소와 비슷하다. 사람의 주소에 빗대어 볼 때, 주소 공간은 이웃, 마을, 도시, 국가와 같은 위치의 지역이 될 수 있다. 두 개의 주소는 숫자로 볼 때는 같지만 다른 주소 공간에 속해 있는 경우 다른 위치를 일컫는다. 이를테면, 어느 한 사람의 집 주소가 "32번지"일 때, 다른 사람의 집 주소도 "32번지"일 수도 있지만, 이 경우 사는 곳의 마을과 국가가 다르다는 것을 뜻한다.
목차 |
[편집] 프로세스와 주소공간
일반적으로 운영 체제는 하나의 프로세스에 대하여 하나의 주소공간을 제공하며, 프로세스 내의 사용자 스레드들은 주소공간을 공유한다.
[편집] 주소공간의 크기
주소공간의 크기는 CPU의 주소 버스의 크기에 따라 결정된다. 만약 주소 버스가 32비트인 시스템에서는
개의 서로 다른 주소에 대한 식별자를 만들 수 있으므로 0부터
까지의 주소범위를 제공할 수 있다.
[편집] 주소 공간의 예
리눅스 커널의 경우 다음과 같은 예를 들 수 있다:
- 커널 가상 주소 공간
- 사용자 가상 주소 공간, copy_to_user(), copy_from_user()와 비슷한 기능을 통하여 커널이 접근함
- 입출력 메모리, readb(), writel(), memcpy_toio()와 같은 것을 통해 접근
[편집] 주석
- ↑ IPv4 Address Space Registry (영어). Internet Assigned Numbers Authority (IANA) (March 11, 2009). 2009년 3월 15일에 확인.
[편집] 같이 보기
| 이 글은 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |