고정 분할 방식을 이용한 가상 메모리 관리 기법
- 페이징 기법의 구현
물리 주소 공간을 같은 크기로 나누어 사용
가상 주소의 분할된 각 영역은 페이지라고 부르며, 물리 메모리의 각 영역은 가상 주소의 페이지와 구분하기 위해 프레임이라 부름
페이지와 프레임의 크기는 같음
어떤 페이지가 어떤 프레임에 있는지에 대한 연결 정보는 페이지 테이블에 담김
모든 페이지는 정보를 순서대로 가지고 있기 때문에, 페이지 테이블은 하나의 열로 구성됨
- 페이징 기법의 주소 변환
- 주소 변환 과정
가상 주소가 어느 페이지에 있는지 찾음
페이지 테이블의 페이지로 찾아가 프레임의 위치 찾음
프레임에서의 위치 찾음
- 정형화된 주소 변환
가상 주소를 VA(가상 주소) = <P(페이지), D(처음 위치에서 해당 주소까지의 거리)>로 표현
가상 주소를 PA(물리 주소)= <F(프레임), D(처음 위치에서 해당 주소 까지의 거리)>로 변환
가상 주소/한 페이지의 크기 에서 몫은 P, 나머지는 D 로 변환됨
- 페이지 테이블 엔트리
페이지 테이블의 각각의 한 줄
- 페이지 테이블 관리
시스템에 여러 개의 프로세스가 존재하고 프로세스마다 페이지 테이블이 하나씩 있기 때문에 페이지 관리 복잡
페이지 테이블은 메모리 관리자가 자주 사용하는 자료구조 이므로 필요시 빨리 접근할 수 있도록 물리 메모리 영역 중 운영체제 영역의 일부분에 모아놓음
페이지 커질 수록 운영체제 영역도 커지기 때문에 사용자 영역 줄어듦
페이지 테이블의 크기가 작지 않기 때문에 페이지 테이블의 크기 적정하게 유지하는 것이 페이지 테이블 관리의 핵심
- 테이블 기준 레지스터(PTBR)
물리 메모리에서 각 페이지 테이블의 시작 주소
페이지 테이블에 빠르게 접근하기 위해 존재함
각 프로세스의 PCB 에 저장됨
- 페이지 테이블 매핑 방식
사용할 수 있는 물리 메모리 영역이 적을 수록 페이지 테이블의 일부도 스왑 영역으로 옮겨짐
페이지 테이블 전체를 메모리에서 관리하느냐, 일부를 스왑 영역에서 관리하느냐에 따라 가상 주소를 물리 주소로 변환하는 방법이 달라짐
- 직접 매핑
페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식
페이지 테이블의 시작 주소는 페이지 테이블 기준 레지스터(PTBR) 이 가지고 있음
- 연관 매핑
페이지 테이블 전체를 스왑 영역에서 관리하고 일부 내용만 물리 메모리에 가지고 있는 방식
물리 메모리의 공간이 작을 때 사용
일부 내용만 무작위로 배치하기 때문에 페이지 번호와 프레임 번호 둘 다 표시
일부분의 테이블을 변환 색인 버퍼(TLB) 라고 부름
주소 변환 시 TLB 내부를 다 검색하고 원하는 프레임 얻지 못 하면(TLB 미스) 스왑 영역에 있는 페이지 테이블 검색하기 때문에 시간 낭비가 심함
- 직접-연관 매핑
연관 매핑의 문제를 개선한 방식
페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져옴
페이지 테이블을 같은 크기의 여러 묶음으로 나누고, 각 묶음의 시작 주소를 가진 디렉터리 테이블을 새로 만들어 관리
디렉터리 테이블을 살펴보면 원하는 테이블 묶음이 메모리 영역에 있는지, 스왑 영역에 있는지에 대해 알 수 있음
디렉터리 페이지 테이블의 시작주소는 PTBR 이 가지고 있음
- 역매핑
물리 메모리의 프레임 번호를 기준으로 테이블 구성
프로세스의 수와 상관없이 테이블이 하나만 존재하기 때문에 테이블의 크기가 매우 작음
프로세스가 가상 메모리 접근 시 프로세스 아이디와 페이지 번호 모두 찾아야 함