메모리의 주소 공간

Woong·2022년 12월 21일
0

컴퓨터 구조

목록 보기
11/15

물리주소와 논리주소

물리 주소 → 메모리 하드웨어가 사용하는 주소
논리 주소 → CPU와 실행 중인 프로그램이 사용하는 주소 → 프로그램이 실행됐다 종료되면서 주소는 항상 바뀔 수 있다.

메모리 관리 장치

CPU와 메모리가 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 한다.
→ 이 때, 변환이 이루어지는 곳을 CPU와 주소 버스 사이에 위차한 메모리 관리 장치(Memory Management Unit, MMU)라고 한다.
→ MMU는 CPU가 발생시킨 논리주소에 베이스 레지스터 값을 더하여 논리주소를 물리주소로 변환한다.

메모리 보호 기법

메모장 프로그램의 물리주소가 1000번지부터 1999번지, 인터넷 브라우저 프로그램의 물리주소는 2000번지부터 2999번지, 게임 프로그램의 물리 주소가 3000번지부터 3999번지라고 MMU의 베이스 레지스터 값은 1000이라고 가정해보자
→ 이 때, 메모장 프로그램 명령어 중 '(논리주소)1500번지에 숫자 100을 저장하라'라는 명령어가 있다면 이 명령어는 맞는 명령어일까 ?? 일단 이 명령어가 이상한 점에 대해 분석해보자
→ 아까 논리주소는 MMU로 인해 물리주소로 변환되어 메모리에 접근한다고 했다. 그럼 논리주소(1500) + 베이스 레지스터(1000) 값이 되어 물리주소로 변환되는데 2500번지는 인터넷 브라우저 프로그램의 물리주소 범위에 속하기에 인터넷 브라우저에 숫자 100이 저장될거다.
→ 고로 이 명령어는 이상하다!

그러면 위에 상황을 어떻게 해결할까 ?

한계 레지스터가 이런 경우를 막아준다!
→ 프로그램 A의 물리주소 구하는 방법(범위)
→ 베이스 레지스터 값 ~ 한계 레지스터 값 ~ 베이스 레지스터 + 한계 레지스터 값

Bold체 정리

베이스 레지스터 → 프로그램의 가장 작은 물리 주소를 저장
한계 레지스터 → 논리주소의 최대 크기를 저장

출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, ~195쪽

profile
공부하는 주니어 개발자

0개의 댓글