프로세스 일부만 메모리에 로드하고, 나머지는 디스크에 둔 상태로 프로세스를 실행하는 방식
프로세스 전체가 메모리에 올라오지 않아도 프로세스를 실행하는 데 문제가 없다는 점에서 ,,!
장점:
프로그램이 메모리 크기에 대한 제약을 덜 받을 수 있다.
동시에 많은 프로그램을 실행하므로 CPU 이용률과 처리율을 높일 수 있다.
필요한 영역만 메모리에 로드해 스와핑 횟수를 줄여 프로그램 실행 속도를 높일 수 있다.
요구 페이징
프로세스에서 필요한 페이지만 메모리에 로드하는 방식, 디스크에 저장되어 있는 영역을 요청이 올 때 메모리에 로드한다.
페이지 폴트: 프로그램을 실행하다가 물리 메모리에 필요한 페이지가 없을 때, 이 경우 디스크에서 필요한 페이지를 스왑 인함.
이때 페이지에 해당하는 메모리 영역이 물리 메모리에 있는지 페이지 테이블로 파악할 수 있으며, 프레임이 존재하면 'v' 값을, 존재하지 않거나 유효하지 않은 주소 값이면 'i'값을 반환한다.
스레싱
동시에 일정 수 이상의 프로그램을 실행했을 떼 오히려 CPU 이용률이 떨어지는 상황
가상 메모리를 구현해 다중 프로그래밍을 하면 CPU 이용률이 높아지지만 일정 수 이상으로 하면 페이지 폴트가 자주 일어나고 스왑인, 스왑아웃 작업을 자주하게 되여 CPU 이용률이 떨어지는 스레싱이 발생하게 된다.
예방하려면 워킹 세트를 설정할 수 있다. => 지역성을 기반으로 자주 사용하는 페이지를 저장해 두는 것. 자주 사용하는 페이지를 물리 메모리의 프레임에 고정하면 페이지 폴트가 빈번하게 발생하는 현상을 방지할 수 있다.