운영체제 ‐ 페이지 교체 - dnwls16071/Backend_Study_TIL GitHub Wiki
📚 페이지 교체 알고리즘
- 요구 페이징 기법으로 페이지들을 적재하다보면 언젠간 메모리가 가득 차게 된다.
- 당장 실행에 필요한 페이지를 적재하려면 적재된 페이지를 보조기억장치로 내보내야 한다.
- 이 때, 어떤 페이지를 내보낼 것인지를 결정하는 방법이 바로 페이지 교체 알고리즘이다.
좋은 페이지 교체 알고리즘이란? - 페이지 폴트가 적은 알고리즘(페이지 폴트가 발생하면 보조기억장치에 접근해야 해서 성능 저하가 발생한다.)
📚 FIFO 알고리즘
FIFO(First-In-First-Out) : 메모리에 먼저 올라온 페이지를 먼저 내보내는 알고리즘
- 메모리에 가장 먼저 올라온 페이지부터 내쫓는 방식
- 가장 단순한 방식
📚 최적 페이지 교체 알고리즘
OPT(Optimal) 알고리즘 : 앞으로 가장 사용하지 않을 페이지를 우선적으로 내보내는 알고리즘
- 앞으로의 사용 빈도가 가장 낮은 페이지를 교체하는 알고리즘
📚 LRU(Least-Recently-Used) 페이지 교체 알고리즘
LRU(Least-Recently-Used) 알고리즘 : 최근에 사용되지 않은 페이지를 가장 먼저 내보내는 알고리즘
📚 스레싱과 프레임 할당
- 페이지 폴트가 자주 발생하는 이유 : 나쁜 페이지 교체 알고리즘 & 프로세스가 사용할 수 있는 프레임이 적어서
스레싱
- 프로세스가 실행되는 시간보다 페이징에 더 많은 시간을 소요하여 CPU 성능이 저해되는 문제
- 동시 실행되는 프로세스의 수를 늘린다고 해서 CPU 이용률이 높아지는 것이 아니다.
- 스레싱의 발생 근본 원인
- 각 프로세스가 필요로 하는 최소한의 프레임 수가 보장되지 않았기 때문
- 각 프로세스가 필요로 하는 최소한의 프레임 수를 파악하고 프로세스들에게 적절한 프레임을 할당해주어야 한다.
균등 할당
: 가장 단순한 할당 방식으로 모든 프로세스들에게 균등하게 프레임을 할당하는 방식비례 할당
: 프로세스 크기에 비례하여 프레임을 할당하는 방식작업 집합 모델
: 프로세스가 실행하는 과정에서 배분할 프레임을 결정, 스레싱이 발생하는 이유는 빈번한 페이지 교체 때문, CPU가 특정 시간 동안 주로 참조한 페이지 개수만큼만 프레임을 할당하면 된다.