페이징 교체 알고리즘(Paging Replacement Algorithm)

케니스·2023년 1월 19일

페이징 교체 알고리즘 이란?

페이지 교체 알고리즘(Paging Replacement Algorithm)은 페이징 기법으로 메모리를 관리하는 운영체제에서 페이지 부재(Page Fault)가 발생하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법이다.

페이지 부재(Page Fault)는 실행중인 프로그램이 가상 메모리에 맵핑되었지만 실제 물리적 메모리에 로드되지 않은 메모리 페이지에 접근할 때 오류가 발생합니다. 물리적 메모리는 가상 메모리보다 작기 때문에 이러한 오류가 발생할 가능성이 높습니다. 이때 기존 페이지를 희생(Victim Page)하여 새로운 페이지를 교체하는 것이 페이징 교체 알고리즘입니다.

📘 Info

프레임: 물리 메모리를 일정 크기로 나눈 블록

페이지 : 가상 메모리를 일정한 크기로 나눈 블록

FIFO(First In First Out) 알고리즘

img

  • 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 알고리즘
  • 구현은 간단하지만 성능에는 이점이 없음
  • 들어온 시간을 저장 순서대로 저장하거나 큐를 이용해 저장
  • 초기화 코드에 적절 할 수 있다
  • Belady’s anomaly 현상이 발생할 수 있다

Belady’s anomaly란 페이지 프레임이 증가되어도 페이지 부재(Page Fault)가 줄어들지 않고 늘어나는 현상. FIFO알고리즘에서 3개의 슬롯에서 3, 2, 1, 0, 3, 2, 4, 3, 2, 1, 0, 4가 수행될 때 9번의 페이지 부재가 나타나지만 슬롯을 4개로 늘린다면 페이지 부재가 10개로 오히려 늘어난다.

OPT(Optimal) 알고리즘

img

  • 가장 오랫동안 사용하지 않을 페이지를 교체
  • 페이지 부재(Page Fault)가 알고리즘 중 가장 적으나 구현이 어렵다.
  • 프로세스가 앞으로 사용할 페이지를 알아야함

LRU(Least Recently Uesd) 알고리즘

img

  • 가장 오랫동안 사용하지 않은 페이지를 교체
  • 최적 알고리즘과 비슷한 효과
  • 많은 운영체제가 선택하는 성능이 좋은 알고리즘
  • 기록을 TimeStamping에 오버헤드가 존재한다

MRU(Most Recently Used) 알고리즘

  • 가장 참조 횟수가 많은 페이지를 교체하는 알고리즘
  • Belady’s anomaly 현상이 일어날 수 있다

참고

profile
노력하는 개발자입니다.

0개의 댓글