-
13. 가상 메모리 관리운영체제 2022. 8. 20. 01:55
2022.08.18 - [운영체제] - 12. 가상 메모리
요구 페이징
이름에서 나오듯이 필요한 시점에, 필요한 크기의 페이지만 페이징하는 것입니다.
- 실제로 사용하는 페이지만 적재하기 때문에 비용이 절약됩니다.
- 어떤 페이지를 사용해야 하는지 결정하는데 오버헤드가 적습니다.
- 주 기억 장치의 용량이 충분하지 않아도 대용량의 프로그램을 실행 가능합니다.
- 페이지를 할당받기까지 대기 시간이 깁니다.
- 페이지에 처음 접근할 시 적재되어 있지 않아 초기 지연이 발생합니다.
- 기억 장치 관리가 복잡합니다.
페이지 폴트와 희생 페이지
페이지 폴트(Page Fault)란, 찾고자 하는 페이지를 물리 메모리에서 찾지 못했을 경우를 말합니다.
캐시 미스와 비슷한 개념입니다.
페이지 폴트가 일어나면 가상 메모리에서 페이지를 찾습니다.
이 페이지를 이제 물리 메모리에 다시 적재해야 하는데,
물리 메모리가 가득 차있을 경우 실행 중인 페이지 하나를 쫓아내게 됩니다.
이 쫓아낸 페이지를 희생 페이지(Victim Page)라고 합니다.
교체 정책 (페이지 교체 알고리즘)
최적 교체
적재된 페이지 중 가장 적게 사용할 페이지를 교체합니다.
페이지 폴트가 일어날 가능성은 적지만
페이지가 호출된 모든 순서를 알고있어야 하기 때문에 다루기가 어렵습니다.
무작위 페이지 교체
말 그대로 아무 페이지나 교체합니다.
오버헤드는 적지만 바로 뒤에 호출되는 페이지가 교체될 수도 있습니다.
FIFO
가장 오래된 페이지를 교체합니다.
단순하고 구현이 간단하지만
자주 사용될 페이지를 구분하지 못 합니다.
2차 기회 페이지 교체
페이지 폴트가 일어나면 큐에서 하나를 제거하고,
아니라면 찾은 페이지를 큐의 맨 뒤로 보냅니다.
큐의 맨 뒤로 갔다는 것은 자주 사용될 가능성이 있다는 것이기 때문에
희생 페이지로 선정될 가능성이 줄어듭니다.
LRU(Least Recently Used)
가장 오랫동안 사용하지 않은 페이지를 교체합니다.
가장 널리 사용되는 방법입니다.
오랜 기간 사용되지 않았다는 것은 앞으로도 잘 쓰이지 않을 가능성이 있는 것이므로
희생 페이지로 선정합니다.
LFU(Least Frequence Used)
사용 빈도가 제일 적은 페이지를 교체합니다.
새로 올라온 페이지가 교체될 가능성이 있습니다.
새로 올라온 페이지는 한번도 사용된 적이 없기 때문입니다.
NUR(Not Used Recently)
최근에 사용하지 않은 페이지를 교체합니다.
스래싱과 프레임 할당
스래싱이란 페이지 교체가 너무 자주 교체되어서 오버헤드가 발생하는 것을 말합니다.
스래싱은 실제 사용하는 수만큼 충분한 페이지 프레임을 갖지 못했을 때 발생합니다.
이를 해결하는 방법으로 전역 교체와 지역 교체가 있습니다.
전역 교체
모든 페이지 프레임이 교체 대상이 될 수 있습니다.
지역 교체
현재 실행 중인 프로세스의 페이지 프레임만 교체 대상으로 삼습니다.
'운영체제' 카테고리의 다른 글
14. 저장 장치와 파일 시스템 (0) 2022.08.20 12. 가상 메모리 (0) 2022.08.18 11. 메모리 관리 (0) 2022.08.17 10. 프로세스 간 통신 (0) 2022.08.16 09. 프로세스 스케줄링 (0) 2022.08.13 - 실제로 사용하는 페이지만 적재하기 때문에 비용이 절약됩니다.