주소 공간 문서 원본 보기
←
주소 공간
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{위키데이터 속성 추적}} [[파일:Virtual address space and physical address space relationship.svg|섬네일|가상 주소 공간과 물리 주소 공간의 관계]] [[컴퓨팅]]에서 '''주소 공간'''(住所 空間)은 물리 메모리나 가상 메모리, [[프로세서 레지스터|레지스터]], [[노드|네트워크 호스트]], [[주변 기기]], [[디스크 섹터]], 다른 논리적 실체나 물리적 실체에 대응되는 주소의 범위를 정의한 공간을 말한다. [[IANA]]<ref>{{웹 인용|url=http://www.iana.org/assignments/ipv4-address-space/|제목=IPv4 Address Space Registry|date=March 11, 2009|출판사=Internet Assigned Numbers Authority (IANA)|언어=영어|확인날짜=2009-03-15|보존url=https://web.archive.org/web/20100430190605/http://www.iana.org/assignments/ipv4-address-space/|보존날짜=2010-04-30|url-status=dead}}</ref>는 수많은 다양한 레지스트리들을 할당함으로써 이들이 각각 고유의 특정한 주소 공간을 관리할 수 있게 한다. 메모리 주소는 컴퓨터 메모리의 [[물리 주소|물리 위치]]를 파악하며, 데이터가 저장되는 위치를 가리킨다. 이러한 주소는 마을의 거리 주소와 비슷하다. 집주소에 빗대어 볼 때, 주소 공간은 이웃, 마을, 도시, 국가와 같은 위치의 지역이 될 수 있다. 두 개의 주소가 숫자로 볼 때는 같지만 소속된 주소 공간이 다른 경우에는 다른 위치를 일컫는다. 이를테면, 어느 한 사람의 집 주소가 "32번지"일 때, 다른 마을이나 국가에 사는 다른 사람의 집 주소도 "32번지"일 수 있다. == 프로세스와 주소공간 == 일반적으로 [[운영 체제]]는 하나의 [[프로세스]]에 대하여 하나의 주소공간을 제공하며, 프로세스 내의 [[사용자 스레드]]들은 주소공간을 공유한다. C/C++ 등으로 프로그램을 하고 컴파일 과정과 링크되면 실행 파일이 만들어진다. 실행 파일의 [[메모리 맵]]은 데이터 특성에 따라 나누어 저장되어 실행되도록, 그리고 하나의 메모리 공간이라고 규정하고 차례로 배치된다. [[운영 체제|OS]]에 의해 메모리에 적재되어 실행이 되려면 우선 해당 메모리의 공간을 할당 받고 적재되어야 한다. 메모리 공간을 할당할 때, 메모리 자원을 할당하는 물리적 주소는 프로그램의 실행 파일에서 제시된 메모리 맵의 주소값과 다른것이 보통인데 이를 중개하는 것이 [[메모리 관리 장치|MMU]]이다. OS에 의해 할당된 물리적 주소는 전체 CPU 입장에서의 주소 공간이므로 프로세서의 [[논리 주소]]와는 액세스 단위로 변환이 이루어져야 하므로 논리회로에 의해 고속 변환이 이루어져야 한다. 그리고 한 개의 프로세스라도 물리적 메모리에 순차적으로 적재되지 않을 수 있다. == 주소공간의 크기 == 주소공간의 크기는 [[중앙 처리 장치|CPU]]([[마이크로프로세서]])의 [[주소 버스]]의 크기에 따라 결정된다. 만약 주소 버스가 32[[비트 (단위)|비트]]인 시스템에서는 <math>2^{32}</math>개의 서로 다른 주소에 대한 [[식별자]]를 만들 수 있으므로 0부터 <math>2^{32}-1</math>까지의 주소범위를 제공할 수 있다. 8비트 [[마이크로프로세서]]의 주소공간은 대부분 16비트를 갖는다. 액세스 단위는 8비트이다. 그러나 8비트 [[MCU]]의 많은 경우는 한개의 CPU 내에서도 8 또는 16비트의 주소 공간을 갖는다. 이런 주소 공간은 C 프로그램의 경우 구별할 수 있는 수단을 제공 하고, 개발자가 지정할 수가 있다. == 주소 공간의 예 == * 거리 주소의 주택 번호 * 마을의 거리 주소 * [[메모리|메인 메모리]] * [[가상 메모리]] * [[메모리 입출력|입출력 포트 공간]] * [[네트워크]] ** 특히 [[IP 주소]] * 하드 드라이브의 [[실린더 헤드 섹터]] 구조 [[리눅스 커널]]의 경우 다음과 같은 예를 들 수 있다: * [[커널 가상 주소 공간]] * [[사용자 가상 주소 공간]], copy_to_user(), copy_from_user()와 비슷한 기능을 통하여 커널이 접근함 * 입출력 메모리, readb(), writel(), memcpy_toio()와 같은 것을 통해 접근 == 각주 == <references /> == 같이 보기 == * [[가상 주소 공간]] {{토막글|컴퓨터 과학}} [[분류:컴퓨터 용어]] [[분류:컴퓨터 구조]] [[분류:데이터 관리]]
이 문서에서 사용한 틀:
틀:웹 인용
(
원본 보기
)
틀:위키데이터 속성 추적
(
원본 보기
)
틀:토막글
(
원본 보기
)
주소 공간
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보