#페이지 교체 알고리즘
Programming 2017. 10. 18. 22:47페이지 교체 알고리즘
메모리가 가득 차서 프로세스에게 자원을 할당할 수 없는 경우가 발생한다. 이런 경우에는 현재 할당된 메모리 공간 중 사용하지 않는 공간을 선점하여 프로세스에게 할당할 수 있겠지만, 점유된 공간 중 어떤 곳을 선점해야할지가 시스템의 관점에서 이슈거리가 된다. 이 상태를 해소하기 위해 ‘페이지 교체(page replacement)’ 기법을 사용할 수 있으며, 이 기법을 구현하기 위한 알고리즘은 다음과 같다
알고리즘 | 설명 |
FIFO | ● 메모리에 적재된 시간이 가장 오래된 페이지 교체 (페이지들을 큐로 관리) ● 구현 간단하나 최적 성능 보장 못함 ● Belady의 모순 (Belady’s anomaly) : 프레임 개수가 많아지더라도 페이지 부재율이 높아지는 현상 |
OPT | ● 최적 페이지 교체 (Optimal Page Replacement) : 앞으로 가장 오랜 시간 동안 사용되지 않을 페이지 교체 ● 다른 모든 알고리즘보다 페이지 부재율이 낮으면서 Belady의 모순이 발생하지 않는 페이지 교체 알고리즘 ● OPT 혹은 MIN으로 표기 |
LRU | ● Least-Recently-Used : 가장 오랫동안 사용되지 않은 페이지 교체 ● OPT에 근사하는 방법 ● 최근의 과거 참조를 기반으로 미래 참조 형태의 근사치 결정 ● Belady의 모순 현상이 나타나지 않는 페이지 교체 알고리즘 ● LRU 페이지 교체의 정확한 구현은 어려움 - 추가 하드웨어가(참조 시간)가 지원되지 않는 시스템이 있음 - 메모리 참조 때마다 참조 시간 정보/스택을 매번 갱신 |
NRU | ● Not-Recently-Used : 시간 정보 대신 과거의 참조 유무를 조회하여 교체 페이지 선정 ● 기본적인 LRU 근사 알고리즘 ● 페이지 테이블에 참조 비트 (reference bit) 추가 - 초기에 모두 0이며 페이지가 참조될 때 1로 설정 - 페이지 교체 시 혹은 주기적으로 0으로 재초기화 ● 추가 참조 비트 (additional reference bit) 알고리즘 - 참조 비트를 확장하여 추가 정보로 활용 |
카운팅 | ● 각 페이지의 참조 횟수를 기록하여 활용 ● 실제 구현은 쉽지 않고, 최적 알고리즘에 잘 근사하지 못함 ● LFU (Least Frequently Used) 알고리즘 - 참조 횟수가 가장 적은 페이지 교체 - 참조 빈도와 참조 시간은 정확히 일치하지 않음 ● MFU (Most Frequently Used) 알고리즘 - 참조 횟수가 가장 많은 페이지 교체 - 참조 횟수가 적은 페이지는 최근에 적재되었고 앞으로 참조될 가능성이 높을 것이라는 직관에 의존 |
참고 자료
엄영익·정태명 공저, 『컴퓨터 운영체제론』, 생능출판사
'Programming' 카테고리의 다른 글
#쿠키와 세션의 차이 (0) | 2017.10.25 |
---|---|
#프로세스 스케줄링 (0) | 2017.10.19 |
#클럭 알고리즘과 2차 기회 알고리즘 (1) | 2017.10.18 |
#단편화, 스와핑, 페이징, 세그먼테이션 (0) | 2017.10.18 |
#고정분할과 가변분할 (1) | 2017.10.18 |