물리적인 메모리(램)의 한계를 극복하기 위해 사용되는 기술, 이를 통해 운영 체제는 실제 물리 메모리보다 더 많은 메모리를 사용할 수 있게 해줌
페이지 : 가상 메모리를 사용하는 최소 크기 단위
프레임 : 실제 디스크나 메모리를 사용하는 최소 크기 단위
구현
- 주소 공간 확장 : 프로세스마다 고유의 가상 주소 공간이 할당되며 이는 물리 메모리와 독립적으로 동작
- 페이지 : 가상 메모리는 일정 크기(일반적으로 4KB)의 페이지로 나뉨, 각 페이지는 물리 메모리의 프레임에 매핑
- 페이지 테이블 : 운영 체제는 페이지 테이블을 통해 가상 주소를 물리 주소로 변환
- 페이지 폴트 트랩 : CPU는 페이지 폴트를 감지하고 운영 체제에 트랩을 발생시킴
- 페이지 테이블 조회 : 운영 체제는 페이지 테이블을 조회하여 해당 페이지가 디스크에 있는지 확인
- 스왑 인 : 디스크에서 해당 페이지를 물리 메모리로 읽어옴
- 페이지 테이블 업데이트 : 페이지 테이블을 업데이트하여 새로운 물리 메모리 주소를 매핑
구현
- 스왑 영역 : 디스크의 특정 영역에 스왑 공간이 할당
- 스왑 아웃 : 사용하지 않는 페이지를 스왑 영역으로 이동
- 스왑 인 : 필요해진 페이지를 다시 물리 메모리로 불러옴
- 원인 : 메모리 부족, 많은 프로세스의 동시 실행, 각 프로세스가 많은 메모리를 필요로 하는 경우
- 증상 : 시스템 성능 저하, 높은 디스크 I/O 활동, 느린 응답 시간
- 해결 방법
- 메모리 증설 : 물리 메모리를 추가하여 페이지 폴트 발생을 줄임
- 프로세스 수 줄이기 : 동시에 실행되는 프로세스의 수를 줄여 메모리 사용량을 감소시킴
- 페이지 교체 알고리즘 개선 : 효율적인 페이지 교체 알고리즘을 사용하여 스레싱을 방지
- 작업 세트(Working Set) 관리 : 각 프로세스의 작업 세트를 모니터링하여 필요한 메모리 양을 동적으로 조정, 작업 세트는
프로세스가 일정 기간 동안 자주 참조하는 페이지들의 집합
- 작업 세트를 적절히 관리하면 필요한 페이지들이 메모리에 유지되어 페이지 폴트를 줄 일 수 있음
- 페이지 폴트 빈도(PFF, Page Fault Frequency) 모니터링 : 페이지 폴트 빈도를 모니터링하고 일정 기준 이상으로 페이지 폴트가 발생하면 프로세스의 메모리 할당을 조정, 페이지 폴트 빈도가 높으면 메모리 할당을 늘리고, 낮으면 줄이는 방식으로 메모리 사용을 최적화함
메모리 절약 및 최적화
스와핑을 통한 메모리 관리
멀티태스킹 지원