반응형
스와핑이 일어날 때 페이지 교체 알고리즘에 의해 페이지가 교체되게 된다.
FIFO (First In First Out)
- 방법 : 메모리에 가장 먼저 올라온 페이지를 먼저 내보냄.
- 특징
- 구현이 간단하고 직관적
- 성능이 좋지 않을 수 있음. Belady의 역설(FIFO anomaly)이 발생할 수 있음.
즉, 페이지 프레임 수가 늘어날 수록 페이지 부재가 증가할 수 있음
LRU (Least Recently Used)
- 방법 : 가장 오랫동안 사용하지 않은 페이지를 교체
- 특징
- "가장 오랫동안 사용하지 않았다면 앞으로도 사용할 확률이 적을 것이다"라고 가정.
- 자주 사용되는 페이지를 유지하므로 성능이 FIFO보다 상대적으로 좋음.
- 프로세스가 주기억 장치에 접근할 때 참조된 페이지 시간을 기록해야 한함.
-> 막대한 오버헤드가 발생할 수 있다.
-> 카운터나 큐, 스택과 같은 별도의 하드웨어가 필요하다.
LFU (Least Frequently Used)
- 방법 : 사용 빈도가 가장 낮은 페이지를 교체
- 특징
- 자주 사용되지 않는 페이지를 제거하여 효율성을 높임. 장기적 시간 규모에서의 참조성향 고려.
- 초기화 시점부터의 빈도를 기준으로 하기 때문에, 새로운 페이지가 불리.
- 오래 전에 사용되었지만 최근에는 사용되지 않는 페이지가 남아 있을 수 있어 성능에 문제가 발생할 수 있음.
때문에 특정 상황에서만 효율적...
MFU (Most Frequently Used)
- 방법 : 사용 빈도가 가장 높은 페이지를 교체
- 특징
- "가장 많이 사용된 페이지는 앞으로는 사용되지 않을 것이다" 라고 가정.
- 오래된 페이지를 제거할 수 있음.
- 실제로 자주 사용되는 페이지를 제거할 위험이 있어 성능이 저하될 수 있음.
LFU와 마찬가지로, 특정 상황에서만 효율적...
NUR / NRU (Not Recently Used) / Clock
- 방법 : 최근에 사용되지 않은 페이지를 교체.
- 특징
- 두 개의 비트(참조 비트/수정 비트)를 사용하여 페이지의 사용 상태를 추적.
- 구현이 비교적 간단하며, 효과적인 경우가 많습니다.
- 참조 비트와 수정 비트를 주기적으로 초기화해야 함.
- LRU보다는 덜 정밀한 편...
오프라인 알고리즘 (OPT, Optiomal)
- 방법 : 현재 메모리에 있는 페이지 중에서 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체
- 특징
- "미래의 페이지 참조를 완벽히 예측할 수 있다"고 가정.
- 페이지 부재를 최소화하는 가장 효율적인 알고리즘. 메모리 관리의 효율성 극대화.
- 실제 시스템에서는 미래를 예측할 수 없어 구현할 수 없는 이론적인 알고리즘임.
- 다른 페이지 교체 알고리즘의 성능을 평가하는 기준으로 사용됨.
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
프로세스 메모리 구조, 프로세스/스레드 차이 (0) | 2024.10.22 |
---|---|
프로그램 컴파일 과정 - C, C++/Java ( Interpreter / JIT ) (0) | 2024.10.18 |
가상메모리(2) - 페이지폴트와 스와핑, 스레싱 (1) | 2024.10.16 |
가상메모리(1) - 페이지테이블, TLB (0) | 2024.10.16 |
시스템 콜(System Call), 사용자 모드(User mode), 커널 모드(Kernel mode), modebit (4) | 2024.10.05 |