운영체제 ‐ 페이지 교체 - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 페이지 교체 알고리즘

  • 요구 페이징 기법으로 페이지들을 적재하다보면 언젠간 메모리가 가득 차게 된다.
  • 당장 실행에 필요한 페이지를 적재하려면 적재된 페이지를 보조기억장치로 내보내야 한다.
  • 이 때, 어떤 페이지를 내보낼 것인지를 결정하는 방법이 바로 페이지 교체 알고리즘이다.

좋은 페이지 교체 알고리즘이란? - 페이지 폴트가 적은 알고리즘(페이지 폴트가 발생하면 보조기억장치에 접근해야 해서 성능 저하가 발생한다.)

📚 FIFO 알고리즘

FIFO(First-In-First-Out) : 메모리에 먼저 올라온 페이지를 먼저 내보내는 알고리즘 image

  • 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
  • 가장 단순한 방식

📚 최적 페이지 교체 알고리즘

OPT(Optimal) 알고리즘 : 앞으로 가장 사용하지 않을 페이지를 우선적으로 내보내는 알고리즘 image

  • 앞으로의 사용 빈도가 가장 낮은 페이지를 교체하는 알고리즘

📚 LRU(Least-Recently-Used) 페이지 교체 알고리즘

LRU(Least-Recently-Used) 알고리즘 : 최근에 사용되지 않은 페이지를 가장 먼저 내보내는 알고리즘 image

📚 스레싱과 프레임 할당

  • 페이지 폴트가 자주 발생하는 이유 : 나쁜 페이지 교체 알고리즘 & 프로세스가 사용할 수 있는 프레임이 적어서
  • 스레싱
    • 프로세스가 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 CPU 성능이 저해되는 문제
    • 동시 실행되는 프로세스의 수를 늘린다고 해서 CPU 이용률이 높아지는 것이 아니다.
  • 스레싱의 발생 근본 원인
    • 각 프로세스가 필요로 하는 최소한의 프레임 수가 보장되지 않았기 때문
    • 각 프로세스가 필요로 하는 최소한의 프레임 수를 파악하고 프로세스들에게 적절한 프레임을 할당해주어야 한다.
  • 균등 할당 : 가장 단순한 할당 방식으로 모든 프로세스들에게 균등하게 프레임을 할당하는 방식
  • 비례 할당 : 프로세스 크기에 비례하여 프레임을 할당하는 방식
  • 작업 집합 모델 : 프로세스가 실행하는 과정에서 배분할 프레임을 결정, 스레싱이 발생하는 이유는 빈번한 페이지 교체 때문, CPU가 특정 시간 동안 주로 참조한 페이지 개수만큼만 프레임을 할당하면 된다.