OS

[OS] 페이지 교체

집한구석 2021. 12. 26. 23:28
728x90

페이지 교체 정의 및 과정

프로그램 실행시 모든 항목이 물리 메모리에 올라오지 않기 때문에, 프로세스의 동작에 필요한 페이지를 요청하는 과정에서 페이지 부재가 발생하게 되면, 원하는 페이지를 보조저장장치에서 가져오게됨 하지만 만약 물리 메모리가 모두 사용중이라면 페이지 교체가 진행되야함

  1. 디스크에서 필요한 페이지 위치를 찾음
  2. 빈 페이지를 프레임을 찾음 (페이지 교체 알고리즘을 통해 희생될 페이지 찾아서 디스크에 기록후, 관련페이지 테이블 수정)
  3. 빈 프레임에 새 페이지를 읽어오고, 프레임 테이블 수정
  4. 프로세스 재시작

페이지 교체 알고리즘

  1. FIFO 페이지 교체  : 먼저 물리 메모리에 들어온 페이지 순서대로 페이지 교체 시점에 먼저 나가게 되는 방식
  2. 최적 페이지 교체 : 앞으로 가장 오랫동안 사용되지 않을 페이지를 찾아 교체하는 방식
  3. LRU 페이지 교체 : 가장 오랫동안 사용되지 않은 페이지를 선택하여 교체하는 방식
  4. LFU 페이지 교체 : 참조 횟수가 가장 적은 페이지를 교체하는 방식

페이지 교체 알고리즘 장단점 

  특징
FIFO 페이지 교체 장점 : 이해하기 쉬움
단점 : 처음부터 활발하게 사용되는 페이지를 교체해서 페이지 부재율을 높이는 부작용 초래
최적 페이지 교체 장점 : 낮은 페이지 부재율을 보장
단점 : 구현이 어려움 (프로세스의 메모리 참조 계획을 미리 파악할 방법이 없기 때문)
LRU 페이지 교체 FIFO보단 부재율을 보장하지만 최적페이지 보단 낮음
LFU 페이지 교체 프로세스가 특정 페이지를 집중적으로 사용하다가, 다른 기능을 사용하게 되면 더 이상 사용하지 않아도 계속 메모리에 머물게 되어 초기 가정에 어긋나는 시점이 발생할 수 있음

'OS' 카테고리의 다른 글

[OS] 가상메모리  (0) 2021.12.26
[OS] 캐시지역성  (0) 2021.12.26
[OS] CPU 스케쥴링  (0) 2021.11.13
[OS] 스케쥴러  (0) 2021.11.10
[OS] 메모리 관리 전략  (0) 2021.11.08