본문 바로가기
CS/[혼자 공부하는 컴퓨터구조 + 운영체제]

[컴퓨터구조] 6-2. 메모리의 주소 공간

by haeyoon 2024. 5. 9.

메모리에 저장된 주소에는 물리주소, 논리주소 두 가지가 있다.

물리주소메모리 하드웨어가 사용하는 주소이고, 

논리주소CPU와 실행중인 프로그램이 사용하는 주소이다.

 

물리주소와 논리주소의 개념에 대해 더 알아보고,

논리주소와 물리주소 간 변환 방법,

메모리 보호 방법에 대해 알아보자.

 


메모리에 저장된 정보는 시시각각 변한다.

메모리에는 새롭게 실행되는 프로그램이 시시때때로 적재되고, 실행이 끝난 프로그램은 삭제된다.

 

1. 정의

물리주소 논리주소
메모리가 사용 CPU와 실행 중인 프로그램이 사용
정보가 실제로 저장된 하드웨어상의 주소 실행 중인 프로그램 가각에게 부여된 0번지부터 시작되는 주소

 

 

EX) 메모리에 메모장, 게임, 인터넷 브라우저 프로그램이 적재되어 있을때

각각의 프로그램들은 서로가 어느 물리 주소에 저장되어있는지 알필요 없음

(새로운 프로그램이 언제든 적재되거나, 실행되지 않는 프로그램은 언제든 삭제될 수 있기 때문이다)

각각 0번지부터 시작하는 논리주소를 가지고 있다.

프로그램마다 같은 논리주소가 얼마든지 존재할 수 있다.

 


2. 논리주소와 물리주소 간 변환 - MMU

CPU가 메모리와 상호작용하려면 논리주소와 물리주소간 변환이 있어야한다.

CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)라는 하드웨어에 의해 수행된다.

 

CPU가 발생시킨 논리주소 + 베이스 레지스터 값 = 물리주소

 * 베이스 레지스터 = 프로그램의 첫 물리주소를 저장

 * 논리주소 = 프로그램의 시작점으로부터 떨어진 거리

 ex)

베이스 레지스터: 15000이 저장

CPU가 발생시킨 논리주소: 100번지

물리주소 = 15000 + 100 = 15100번지

 


3. 메모리 보호 기법

[오류 케이스]

메모장의 논리주소 = 0번지 ~ 1000번지인데

CPU는 메모장의 논리주소 1500번지에 값을 저장하라고 명령

인터넷브라우저에 숫자 100을 저장하게 됨

 

[해결 방법]

* 베이스 레지스터 = 실행중인 프로그램의 가장 작은 물리주소 저장

* 한계 레지스터 = 논리주소의 최대 크기를 저장

논리주소 범위를 벗어나는 명령어 실행을 방지하고, 실행중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호한다.

 

+ 베이스 레지스터 값물리주소베이스 레지스터 + 한계 레지스터 값

접근하고자 하는 논리 주소가 한계 레지스터보다 작은지 검사

→ 높으면 인터럽트(트랩) 발생