#들어가며
논리 주소와 물리 주소로 주소 공간을 나눈 이유?
논리 주소를 물리 주소로 변환하는 방법?
#물리 주소와 논리 주소
CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까요?
NO
메모리에 저장된 값들은 시시각각 변하기 때문
- 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
- 실행이 끝난 프로그램은 메모리에서 삭제
- 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐
- 물리 주소
- 메모리 입장에서 바라본 주소
- 말 그대로 정보가 실제로 저장된 하드웨어상의 주소
- 논리 주소
- CPU와 실행 중인 프로그램 입장에서 바라본 주소
- 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소
#물리 주소와 논리 주소의 변환
그렇다면 물리 주소와 논리 주소 간의 변환은 어떻게 이루어질까?
물리 주소에는 겹치는 주소가 없다. CPU와 메모리가 상호작용을 하려면 논리 주소를 물리 주소로 변환하는 과정이 필요하다.
#베이스 레지스터
프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소)를 저장하는 셈, 논리 주소와 물리 주소의 거리인 셈
#논리 주소
프로그램의 시작점으로부터 떨어진 거리인 셈
#메모리 보호
만일 메모리에 저장되는 주소가 겹쳐도 괜찮을까?
NO
#한계 레지스터
- 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
- 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장
- 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값
'혼자 공부하는 컴퓨터 구조 및 운영체제 (복습)' 카테고리의 다른 글
다양한 보조기억장치 (하드 디스크와 플래시 메모리) (4) | 2024.10.13 |
---|---|
캐시 메모리 (3) | 2024.10.13 |
RAM의 특성과 종류 (7) | 2024.10.12 |
명령어 집합 구조, CISC와 RISC (7) | 2024.10.12 |
명령어 병렬 처리 기법 (6) | 2024.10.12 |