메모리 관리 - 5

초보개발·2022년 2월 21일
1

OS

목록 보기
31/38

역페이지 테이블


페이지 테이블을 사용할 때 메모리 공간 낭비가 심해지는데, 모든 프로세스의 모든 페이지에 대한 페이지 테이블 항목을 다 구성해야 하기 때문이다. 이 문제를 해결하기 위해 역페이지 테이블(inverted page table) 기법이 사용된다.
역페이지 테이블 기법은 물리적 메모리의 페이지 프레임 하나당 페이지 테이블에 하나씩의 항목을 두는 방식이다. 논리적 주소에 대해 페이지 테이블을 만드는 것이 아닌 물리적 주소에 대해 페이지 테이블을 만드는 것이다.

  • 각 프로세스 마다 페이지 테이블을 두지 않고 시스템 전체 페이지 테이블 하나만 구성

페이지 테이블의 각 항목은 어느 프로세스(PID)의 어느 페이지(P, 논리적 페이지 번호)가 이 프레임에 저장되었는지의 정보를 보관한다.

공유 페이지


공유 코드는 메모리 공간의 효율적 사용을 위해 여러 프로세스에 의해 공통으로 사용될 수 있도록 작성된 코드를 말한다.

  • 재진입 가능 코드, 순수 코드, READ-ONLY


공유 페이지는 공유 코드를 담고 있는 페이지를 말한다. 여러 프로세스에 의해 공유되는 페이지이므로 물리적 메모리에 하나만 적재되어 메모리를 좀 더 효율적으로 사용할 수 있게 한다.
공유 페이지는 그 페이지를 공유하는 모든 프로세스의 주소 공간에서 동일한 페이지 번호를 가져야 한다.

이에 반해서 사유 페이지는 프로세스들이 공유하지 않고 프로세스 별로 독자적으로 갖고 있는 페이지를 말하며 프로세스의 논리적 주소 공간 중 어디든지 있을 수 있다.

메모리 보호

페이지 테이블의 각 항목에는 주소 변환 정보말고도 메모리 보호를 위한 보호 비트(protection bit)와 유효-무효 비트(valid-invalid bit)를 두고 있다.

  • 보호 비트: 각 페이지에 대한 어떠한 접근 권한을 허용하는 지에 대한 비트
    • 각 페이지에 대한 읽기-쓰기 / 읽기 전용 등 접근 권한 설정
  • 해당 페이지의 내용이 유효한지에 대한 내용을 담음
    • 유효: 해당 메모리 프레임에 그 페이지가 존재함, 접근 가능
    • 무효: 프로세스가 그 주소 부분을 사용하지 않거나 페이지가 물리적 메모리에 없고 백킹스토어에 존재해 해당 메모리 프레임에 유효한 접근 권한이 없음

0개의 댓글