CPU 주소 공간
CPU가 접근할 수 있는 전체 메모리 공간
최대 크기: 주소 버스 수에 의해 결정
- 주소 공간은 0번지부터 시작
- 하나의 주소가 가리키는 공간은 1바이트 영역
CPU 주소 공간보다,
- 큰 메모리가 장착되어 있어도 접근 불가
- 작은 메모리가 장착되어 있는 경우엔 접근 가능
- 단,CPU가 설치된 메모리의 주소 영역을 넘어 접근하면 시스템 오류 발생
프로세스의 메모리 구성
- 프로세스는 프로그램과 달리 주기억장치에 주소 공간을 가지며,
- 현재의 활동 요소를 갖는 능동적인 개체임
코드 : 실행 코드를 저장
정적 데이터 : 정적 변수(전역,지역)를 저장
힙 : 동적 할당 영역
스택 : 함수의 복귀 주소 및 지역 변수를 저장하는 영역
프로세스 주소 공간
프로세스가 실행 중에 접근할 수 있도록 허용된 주소의 최대 범위
- 가성적인 논리 공간
- 0번지부터 시작해서 연속적
- 사용자 공간 + 커널 공간
프로세스 주소 공간의 크기
- CPU가 접근할 수 있는 최대 크기: 32비트 CPU 4GB
- 단, 프로세스의 현재 크기 와는 다르다.
ex) 코드/데이터 영역크기 + 현재 할당된 힙/스택 영역의 크기
실행 중에 계속 변함
프로세스 주소 공간의 특징
프로세스 주소 공간은 각 프로세스 별로 할당된 가상 공간
사용자나 개발자가 보는 관점
- 자신이 작성한 프로그램이 0번지부터 시작하여 연속적인 메모리 공간에 형성된다고 상상
- CPU가 접근할 수 있는 최대 크기의 메모리가 설치되어 있다고 상상
실제 상황
- 설치된 물리 메모리의 크기는 프로세스 주소 공간보다 작을수 있음
- 코드,데이터,힙 스택은 물리 메모리에 흩어져 저장됨 (연속 할당이 아님)