솜은 코튼

[OS] 페이지 테이블 매핑 방식 본문

OS

[OS] 페이지 테이블 매핑 방식

솜.코 2023. 5. 21. 17:35

 

 

이전 내용에서 페이지 테이블을 이용해 메모리 접근하는 방법에 대해 알아봤다.

 

 

2023.05.21 - [OS] - [OS] 가상 메모리 (페이징 기법)

 

[OS] 가상 메모리 (페이징 기법)

고정 분할 방식으로 메모리를 분할하여 관리하는 것을 페이징 기법이라고 했다. 페이징 기법의 구현 방법에 대해 알아보자. 페이징 기법의 구현 . . . 가상 주소는 프로세스 입장에서 바라본 메

sommda.tistory.com

 

 

페이지 테이블 매핑 방식

.

.

.

 

 

페이지 테이블 전체를 메모리에서 관리하느냐

메모리 영역 부족으로 일부를 스왑 영역에서 관리하느냐에 따라

가상 주소를 물리 주소로 변환하는 방법이 달라진다.

 

 

다양한 페이지 테이블 매핑 방식을 알아보자.

 

페이지 테이블 매핑 방식에는 직접 매핑, 연관 매핑, 집합-연관 매핑, 역매핑이 있다.

 

 

직접 매핑은 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식으로 주소 변환 속도가 빠르다.

물리 메모리상 페이지 테이블의 P번째 주소가 시작 주소(PTBR)로부터 P번째 위치에 존재한다.

 

 

 

연관 매핑은 페이지 테이블 전체를 스왑 영역에서 관리하는 방식이다.

모든 페이지 테이블을 저장장치의 스왑 영역에 저장하고 그중 일부만 물리 메모리에 가지고 있다.

 

이 일부분의 테이블을 '변환 색인 버퍼' 또는 '연관 레지스터'라고 한다.

 

일부 내용만 무작위로 배치해 페이지 번호와 프레임 번호 둘 다 표시한다.

 

연관 매핑에서는 메모리에 접근하기 위해 먼저 변환 색인 버퍼를 찾아본다.

 

원하는 페이지 번호가 버퍼에 있는 경우 'TLB hit'라고 하며,

없는 경우는 'TLB miss'라고 한다.

 

직접 매핑에서는 프레임 번호를 바로 알 수 있지만

연관 매핑은 위에서부터 검색해야 하고, 검색 실패 시 스왑 영역에서 찾아야 하므로 시간을 낭비한다.

 

 

 

집합-연관 매핑은 모든 페이지 테이블을 스왑 영역에서 관리하고 일부만 물리 메모리로 가져온다는 것은 동일하지만

페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져온다.

 

이로 인해 무작위로 데이터를 가져와 모든 테이블을 검색하는 연관 매핑의 문제를 개선할 수 있다.

아래 그림을 보면 페이지 테이블을 5개씩 자르고 이를 관리하는 페이지 테이블을 하나 더 생성했다.

이 페이지 테이블에는 자른 테이블이 물리 메모리에 있는지, 스왑 영역에 있는지를 표시한다.

디렉토리가 하나 생성되어 가상 주소 VA=<P1, P2, D>로 바꾸어 표시한다.

(P1: 디렉터리 테이블 번호, P2: 묶음 페이지 테이블 번호)

 

모든 페이지 테이블을 검사할 필요가 없어 주소 변환 시간이 단축된다.

 

 

 

역매핑은 앞의 세가지 매핑과 반대로 페이지 테이블을 구성하는 방식이다.

앞의 세가지 매핑은 페이지 번호를 기준으로 테이블을 구성하지만

역매핑에서는 물리메모리의 프레임 번호를 기준으로 테이블을 구성한다.

따라서 프로세스의 수와 상관없이 테이블이 하나만 존재하며,

테이블의 크기가 매우 작다는 장점이 있다.

 

역매핑 방식에서는 테이블이 <프레임 번호, 프로세스 아이디, 페이지 번호>로 구성되고

페이지 테이블의 행 수는 실제 프레임의 수와 같다.

 

 

 

메모리 관리자는 주소 변환을 해야 하는 프로세스의 아이디와 페이지 번호가

물리 메모리에 있는지 역매핑 테이블에서 검색한다.

 

 

 

 

 

 

 

 

 

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