728x90
운영체제는 주기억장치(Main Memory) 보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라고 한다.
✔️ 페이지 교체(page replacement)란?
페이지 교체란 ?
페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치(=Main Memory)에 적재되어 있지 않을 시, 해당 페이지를 찾아 주기억장치의 빈 프레임에 로딩해야한다.
하지만 이때 빈 프레임이 없을 경우 1)메모리에 올라와 있는 페이지 중 하나를 디스크로 쫓아내(page-out), 2)메모리에 빈 공간을 확보한 후 3)새로운 페이지를 메모리에 올려야한다(page-in).
이러한 과정이 페이지 교체(page replacement) 이다.
• Victim Page : page-out 된 페이지
어떻게 Victim Page를 고르는지 페이지 교체 알고리즘(Page Replacement Algorithm)에 대해서 알아보자 !
✔️FIFO(First In First Out) 알고리즘
- FIFO 알고리즘은 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 알고리즘이다.

- 구현은 간단하지만, 성능은 좋지 않다.
- Belady's Anomaly 문제가 발생할 수 있다.

- Belady's Anomaly : 프레임 수를 증가시킴(= 메모리 용량 증가)에도 불구하고 페이지 부재(=Page Fault)가 증가하는 현상
✔️OPT(Optimal) 알고리즘
- OPT 알고리즘은 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 알고리즘

- 모든 페이지 교체 알고리즘 중 page-fault 발생이 가장 적다.
- 프로세스가 앞으로 사용할 페이지를 미리 알아야하는 문제점 → 실제로 구현하기 불가능한 알고리즘
✔️ LRU(Least Recently Used) 알고리즘
- LRU 알고리즘은 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘이다.

- 성능이 좋은편이여서 많은 OS가 채택하는 알고리즘이다.
- 가장 오랫동안 사용하지 않은 페이지를 찾기위해 LRU page를 추적해야하는 문제점이 있다.
✔️ Clock Algorithm
LRU와 비슷한 알고리즘으로, LRU와 달리 페이지 교체(page replacement)를 위해 하드웨어적인 지원을 통해 동작한다.

- System의 모든 페이지들이 circular list를 구성함.
- Victim Page를 찾기 위해 페이지의 'reference bit'를 확인함.
- bit가 1이면, 페이지가 최근에 사용되었다는 뜻으로 0으로 바꾼 후 지나간다.
- bit가 0이면, 페이지가 최근에 사용되지 않았다는 뜻으로 page를 교체한다.
#참고
728x90
'CS 지식 > 운영체제' 카테고리의 다른 글
[운영체제] IPC(Inter Process Communication) (1) | 2024.08.28 |
---|---|
[운영체제] I/O 처리 방식 : Synchronous/Asynchronous & Blocking/Non-Blocking (0) | 2024.08.27 |
[운영체제] Paging(페이징) 과 Segmentation(세그먼테이션) (0) | 2024.08.25 |
[운영체제] Semaphore(세마포어) & Mutex(뮤텍스) (0) | 2024.08.24 |
[운영체제] Race Condition(경쟁 상태) (0) | 2024.08.24 |