바로가기
한마디로
메모리 효율을 향상시키기 위한 가상메모리를 운용하는 기법 중 하나로
프로세스를 고정 크기로 분할하여 가상메모리에 할당하고 물리메모리를 이와 동일한 크기인 프레임으로 나누어 프로세스에 필요한 페이지만 프레임에 적재하여 사용하는 기법
가상메모리 (Virtual Memory)

- 주기억장치(물리메모리) 메모리의 용량을 확장하기 위해 보조기억장치를 마치 주기억장치인 것처럼 활용하는 방법
- 가상메모리는 프로세스마다 논리적 주소공간을 가지고 이 주소공간의 일부는 물리적 메모리에 적재되고 일부는 스왑영역에 존재한다.
- 장점
- 프로세스의 일부만 올리기 때문에 메모리 사용량이 감소한다.
- 디스크에서 일부의 데이터만 입출력하기 때문에 입출력 오버헤드가 감소한다.
- 시스템이 더 많은 프로세스를 수용할 수 있다.
- 프로그램이 물리적 메모리의 용량 제약에서 자유롭다 (메모리보다 큰 프로그램 실행 가능)
- 가상메모리 기법은 프로세스의 주소공간을 적재하는 단위에 따라
요구 페이징 기법
과 요구 세그멘테이션 기법
두개로 나눌 수 있다.
페이지와 프레임

-
정의
- 프로세스를 가상메모리의 주소공간에 페이지 단위로 나누어 놓고 당장 사용될 페이지만을 물리메모리에 적재하는 기법
- 가상메모리를 나눈 영역을
페이지
, 물리메모리를 나눈 영영을 프레임
이라고 한다.
- 페이지와 프레임은 크기는 동일하게 관리된다.
- 페이징은 고정 분할 분산 메모리 할당 기법이다. (세그멘테이션은 가변 분할 분산)
- 페이징 기법을 통해 컴퓨터의 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없으며, 반대로 연속적으로 존재하지 않는 물리적 메모리라도 페이징 기법을 통해 연속적으로 존재하는 것처럼 이용될 수 있다.
-
장점
- 페이지를 사용하면 외부단편화가 발생하지 않는다.
- 메모리를 효율적으로 사용할 수 있다.
- 공유 페이지 이용 가능
- 메모리 압축 및 통합 기법 사용하지 않아도 됨
-
단점
- 페이지의 갯수가 많아지기 때문에 페이지 단위의 입출력이 자주 발생하게 된다.
- 프로세스의 여러 페이지를 메모리에 분산 적재하기 때문에 운영체제의 관리 부담이 크다.
- 내부단편화 문제는 해결되지 않는다.
- 페이지 단위를 작게하면 내부 단편화 문제도 해결할 수 있겠지만 대신 page mapping 과정이 많아지므로 오히려 효율이 떨어질 수 있다.
-
페이지 테이블

-
페이징 기법에서 페이지는 페이지테이블(Page Table) 이라는 자료구조 형태로 관리된다.
-
페이지테이블은 프로세스의 페이지 정보를 저장하고 있으며, 하나의 프로세스는 하나의 페이지 테이블을 가진다.
-
페이지테이블은 Index 를 키로 해당 페이지에 할당된 메모리(Frame)의 시작 주소를 Value 로 저장하고 있다.
-
페이지 테이블 엔트리(Page Table Entry)는 페이지 테이블의 레코드를 말한다.

- 페이지 기본 주소
- 플래그 비트
- 여러 상태 비트
- 보호 비트