본문 바로가기
Computer Science/Operating System

[운영체제] 2단계 페이징 테이블 기법 알아보기

by ggyongi 2022. 4. 1.
반응형

페이징 기법

일반적인 페이징 기법에서의 주소 변환은 아래 그림과 같다.

논리적 주소에서 p는 페이지번호, d는 페이지 오프셋을 의미한다.

하지만 페이징 기법은 물리적 메모리 낭비가 심하다는 단점을 가지고 있다.

32비트 주소 체계 = 232= 4G의 주소 공간을 가진 프로그램 지원 가능

이때 총 필요 용량 = 4G * 1바이트 = 4GB

프로그램의 필요 용량 4GB

1개 페이지가 약 4KB일 때, 4GB / 4KB = 1M개의 페이지가 필요.

즉 페이지 테이블에는 1M개 엔트리가 필요.

엔트리 하나 당 4B를 차지한다면,  페이지 테이블의 용량은 4MB가 됨. 헉 4MB나??

=> 페이지 테이블이 메모리의 상당 부분을 차지하게 된다.

 

그래서 2단계 페이징 테이블 기법이 고안되었다.

2단계 페이징 테이블의 목적은 시간을 줄이는 것이 아니라, 메모리 공간을 줄이는 것을 목표로 한다.

 

 

2단계 페이징 테이블 기법

 

페이지 크기 4KB, 페이지 내 바이트는 총 4K = 2 12승 개가 있음.

이를 구별하기 위해 12비트가 필요. => d

 

한편 2단계 페이징 기법에선 페이지 테이블을 1개의 프레임에 보관함.

따라서 페이지 테이블의 크기도 페이지와 동일한 4KB이다.

그러면 페이지 테이블 엔트리 1개가 4B일 때,

4KB/4B = 1K개의 항목을 가지게 됨. 이를 구별하기 위해 10비트가 필요.  => p2

 

32비트 중 나머지 10비트외부 페이지 테이블 할당 됨.  => p1

 

기존 페이지 테이블은 p를 통해 인덱스처럼 접근하기 때문에 중간의 엔트리를 잘 사용하지 않는다고 해서 빼먹을 수가 없었다. 따라서 엔트리 개수는 잘 사용되지 않는 페이지가 있다해도 맥시멈 논리적 메모리의 크기만큼 만들어진다.

2단계 페이징 테이블 기법에서는 바깥 페이지 테이블은 전체 논리적 메모리 크기만큼 만들어지지만, 실제로 사용하지 않는 주소에 대해서는 안쪽 페이지 테이블을 만들어두지 않고 null로 남겨둔다. 자주 사용되는 메모리 영역에 대해서만 안쪽 페이지를 만들어둠으로써 공간적인 이득을 본다.

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글