<aside> 💡 “운영체제 : 아주 쉬운 세가지 이야기”를 읽으면서 핵심 내용을 정리하였습니다. 이화여대 반효경 교수님의 운영체제 강의를 듣고 복습 차원에서 책 한권을 완독해보고자 합니다. 잘못된 정보가 있다면 댓글 남겨주시면 감사하겠습니다!

</aside>

페이징의 한계 - 공간

페이지 테이블이 크면 많은 메모리 공간을 차지하게 된다. 페이지 크기가 4KB이고 32비트 주소공간을 가진 시스템에서 페이지 테이블의 크기는 약 4MB 이다. 이는 프로세스 한개 당 필요한 페이지 테이블이기 때문에 프로세스 수가 증가함에 따라 엄청난 메모리를 차지하게 된다.

아래에서는 어떻게 페이지 테이블의 크기를 줄일 수 있을 지 알아보게 될 것 이다.

간단한 해법 : 더 큰 페이지

페이지의 크기를 4KB에서 16KB로 증가 시키게 되면 페이지 테이블의 크기는 1/4 줄어서 1MB가 될 것이다. 하지만 큰 페이지 테이블을 사용하게 되면 내부 단편화가 일어나 내부의 낭비 공간이 생기게 된다. 해당 낭비 공간으로 인해 시스템의 메모리가 금방 고갈되는 현상이 발생한다.

멀티 레벨 페이지 테이블

선형 페이지 테이블을 트리 구조로 표현한 방식이다. 매우 효율적이기 때문에 많은 현대 시스템에서 사용중이다.

Untitled

아이디어

구현 방법 : 페이지 디렉토리(page directory)의 사용

장점

  1. 사용된 주소 공간의 크기에 비례하여 페이지 테이블 공간이 할당된다. 작은 크기의 페이지 테이블로 주소공간을 표현할 수 있다.
  2. 페이지 크기로 페이지 테이블을 분할 함으로서 메모리 관리가 용이함
    1. 선형 테이블에서는 전체 테이블 크기만큼 연속된 메모리가 필요함 → 공간 찾기 어려움
    2. 페이지 테이블의 페이지들이 물리 메모리안에 산재해 있더라도 페이지 디렉토리로 찾아 갈 수 있음

단점

  1. TLB 미스시, 두번의 메모리 로드가 발생한다.
    1. 페이지 디렉터리 접근 + PTE 접근