Computer Science
[Computer Science] 메모리 : 메모리의 주소 공간
WebDevLee
2024. 5. 15. 17:48
메모리의 주소 공간, 주소 체계에 대해 정리하였습니다.
참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 메모리의 주소 공간 >
CPU와 현재 실행 중인 프로그램은 현재 몇 번지에 어떤 프로그램/명령어가 저장되어 있는지 알지 못합니다.
이러한 점을 극복하기 위해 메모리의 주소 체계를 논리주소와 물리주소로 나누었습니다.
메모리에 저장된 값들은 시시각각 변하기 때문에 CPU와 현재 실행 중인 프로그램은 메모리의 몇번지에 어떤 프로그램/명령어가 저장되어 있는지 알지 못합니다.
- 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
- 실행이 끝난 프로그램은 메모리에서 삭제
- 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐
< 논리 주소와 물리 주소 >
논리 주소는 CPU와 실행 중인 프로그램 입장에서 바라본 주소입니다.
=> 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소입니다.
물리 주소는 메모리 입장에서 바라본 주소입니다.
=> 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소입니다.
< 논리 주소와 물리 주소 >
MMU(Memory Management Unit)라는 하드웨어에 의해 변환
MMU는 논리 주소와 베이스 레지스터(프로그램의 기준주소) 값을 더하여 논리 주소를 물리 주소로 변환합니다.
- 베이스 레지스터에 실행 중인 프로그램의 가장 작은 물리 주소를 저장합니다.
[ 메모리 보호 ]
한계 레지스터 설정을 통해 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막습니다.
CPU는 메모리에 접근하기 전, 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사합니다.
- 한계 레지스터에 논리 주소의 최대 크기를 저장합니다.
: 한계 레지스터를 통해 위와 같은 명령어의 실행을 막을 수 있습니다.