가상메모리는 프로그램이 실제 메모리보다 더 큰 메모리를 사용하는것처럼 보이게 하는 기술이다.
이를 통해 운영체제는 여러 프로그램을 동시에 실행하고, 메모리를 효율적으로 관리할 수 있다.
가상메모리의 필요성
다음은 가상 메모리가 필요한 이유이다.
- 물리메모리(RAM)의 크기가 제한적이다.
- 큰 프로그램을 실행하기 어렵다.
- 여러 프로그램을 동시에 실행하기 어렵다.
결론적으로 제한된 메모리를 효율적으로 사용하기 위해 가상 메모리가 필요하다.
가상메모리의 동작 방식
- 프로그램이 데이터를 사용하려고 메모리에 접근한다. 이때 프로그램은 실제 메모리 주소가 아닌 가상주소를 사용한다.
- 운영체제가 가상 주소를 물리주소(RAM위치)로 변환한다.
- 운영체제가 해당 데이터가 RAM이 있는지 확인한다.(없을 경우 Page Fault가 발생한다.)
- 운영체제가 디스크에서 해당 데이터를 가져와 RAM에 올린다.
- 데이터가 메모리에 올라오면 프로그램 실행을 이어간다.
용어 정리
가상 주소 : 프로그램이 사용하는 주소
물리 주소 : 실제 메모리(RAM)의 주소
PageFault : 요청한 데이터가 메모리에 없을 때 발생한다.
이 경우 운영체제는 디스크에서 해당 데이터를 가져와 메모리에 적재한 후 실행을 이어간다.
디스크 접근이 발생하므로 성능 저하가 발생할 수 있다.