페이지 교체 정책이란 물리 메모리에 데이터가 full인 상태에서 다음 실행해야할 프로세스의 페이지와 물리 메모리에서 불피요한 페이지를 교체하는 기법을 말한다.
FIFO 알고리즘을 사용한 페이지 교체 알고리즘을 살펴보자.
FIFO 알고리즘을 사용하면 가장 먼저 넣은 페이지가 가장 먼저 빠져나오게 된다.
OPT란 최적 페이지 교체 알고리즘을 말하며 앞으로 가장 오랫동안 사용하지 않을 페이지를 선정하여 교체하는 알고리즘이다. 하지만, 일반 OS에서는 구현하기 불가능하다.
LRU란 가장 오래 전에 사용된 페이지를 교체하는 알고리즘을 말하며, 과거 기록을 기반으로 페이지를 구별한다. OPT의 구현이 현실적으로 어려우므로 OPT를 대체하기 위해 등장했다.
LFU란 가장 적게 사용된 페이지를 교체하는 알고리즘을 말한다.
NUD이란 최근에 사용하지 않은 페이지부터 교체하는 알고리즘을 말하며, 각 페이지마다 참조(read) 비트(R), 수정(write) 비트(M)을 갖고 (R, M)의 짝으로 페이지의 순서를 구분한다.
스레싱은 반복적으로 페이지 폴트가 발생해 과도하게 페이지 교체 작업이 빈번히 일어나서 실제로 어떤 실행도 하지 못하는 상황을 말한다.
세그멘테이션이란 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할하는 기법을 말한다.
Code Segment, Data Segment, Stack Segment, Extra Segment
세그먼트 가상 주소
segment 단위로 물리 메모리 로딩
내부 단편화(페이지)
외부 단편화(세그멘테이션)
세그멘티이션 / 페이징 모두 하드웨어 지원 필요