솜은 코튼

[OS] 가상 메모리 (매핑 테이블) 본문

OS

[OS] 가상 메모리 (매핑 테이블)

솜.코 2023. 5. 21. 14:02

 

 

가상 메모리란?

.

.

 

컴퓨터마다 물리 메모리, 즉 실제 메모리의 크기가 다르다.

 

그렇다고 컴퓨터마다 프로그램을 구현하긴 어렵다.

 

하여 물리 메모리의 크기와 프로세스가 올라갈 메모리 위치를 신경 쓰지 않고

프로그래밍하도록 지원하고

이러한 메모리 시스템을 '가상 메모리'라고 부른다.

 

 

즉, 가상 메모리는 물리 메모리의 크기와 상관없이

프로세스에 커다란 메모리 공간을 제공하는 기술이다.

 

 

앞에서 논리 주소는 0번지부터 시작된다고 설명했다.

가상 메모리 또한 0번지부터 시작하는 연속된 메모리 공간을 가진다.

 

하지만 논리 주소는 물리 메모리의 주소 공간에 비례하지만

가상 주소는 가상의 주소 공간을 가진다.

 

 

가상 메모리는 물리 메모리의 크기와 상관없이 커다란 메모리 공간을 제공한다 했는데

이게 말이 되나?

 

 

이론적으론 가상 메모리는 무한대의 크기이다.

 

우리가 앞에서 메모리 공간을 늘릴 수 있는 스왑 영역에 대해 알아봤다.

스왑 영역은 가상 메모리의 구성 요소 중 하나이다.

물리 메모리의 부족한 부분을 하드디스크의 일부 공간인 스왑 영역으로 보충하는 것이다.

 

 

그럼 가상 주소를 실제 메모리의 물리 주소로 변환해 주어야 할 것이다.

이 작업을 '동적 주소 변환(DAT, Dynamic Address Translation)'이라고 한다.

 

 

메모리 관리자가 가상 메모리를 어떻게 관리해야 할지 알아보자.

 

 

가상 메모리의 메모리 분할 방식

.

.

 

 

이전 내용에서 물리 주소 0번지는 운영체제 영역이므로

사용자가 사용할 수 없다고 하였다.

 

가상 메모리 시스템에서 운영체제 영역을 제외한 나머지 영역을 나누어 할당한다.

 

 

가상 메모리 시스템은 이전 글에서 말한 가변 분할 방식고정 분할 방식으로 나뉜다.

하지만 앞에서 다룬 문제들로 두 기법의 단점을 보완한

'세그멘테이션-페이징 혼용 기법'을 주로 사용한다.

 

정리해보면 아래와 같다.

 

 

 

 

메모리 관리를 수월하게 하기 위해 메모리 관리자는 가상 주소와 물리 주소를 일대일로 매핑한

'매핑 테이블'을 사용한다.

 

매핑 테이블로 가상 주소가 물리 메모리의 어느 위치에 있는지 알 수 있다.

 

 

 

 

가상 주소상 프로세스 A는 물리 메모리의 세그먼트 0에 위치한다.

프로세스 A의 어떤 값이 필요할 때는 물리 메모리의 세그먼트 0에서 원하는 데이터를 가져온다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)