가상 메모리(Virtual Memory)
가상 메모리는 실제 물리 메모리(RAM)의 용량을 넘어서 프로그램이 더 많은 메모리를 사용하는 것처럼 보이도록 해주는 운영체제의 메모리 관리 기법이다.
가상 메모리란?
가상 메모리는 물리적인 메모리를 추상화하여, 각 프로세스가 독립된 메모리 공간을 갖는 것처럼 작동하게 하는 개념이다. 실제 메모리 주소가 아닌 **가상 주소(Virtual Address)**를 사용하고, 운영체제가 이를 **물리 주소(Physical Address)**로 매핑해준다.
가상 메모리의 주요 목적
- 메모리 보호
각 프로세스는 자신만의 가상 메모리 공간을 가지므로, 다른 프로세스의 메모리에 접근할 수 없다.
- 프로세스 간 독립성 보장
프로그램이 서로 간섭하지 않고 안정적으로 실행될 수 있다.
- 큰 프로그램 실행 가능
실제 메모리보다 큰 프로그램도 실행 가능하다. 일부는 디스크에 저장해 두었다가 필요할 때 메모리에 적재한다.
- 메모리 효율성 향상
자주 사용하지 않는 부분은 물리 메모리에 올리지 않기 때문에 RAM을 효율적으로 사용할 수 있다.
동작 방식
가상 메모리는 **페이징(Paging)**이라는 기법을 통해 관리된다.
- 가상 메모리는 **페이지(Page)**라는 작은 단위로 나뉘고,
- 물리 메모리는 **프레임(Frame)**이라는 동일 크기의 단위로 나뉜다.
- **페이지 테이블(Page Table)**은 가상 페이지가 어떤 물리 프레임에 매핑되는지를 기록한다.
페이지 부재(Page Fault)
필요한 페이지가 메모리에 없을 경우 디스크에서 불러오는데, 이를 페이지 부재라고 하며 이때 성능 저하가 발생한다.
요약
항목 설명 목적 큰 프로그램 실행, 보호, 효율성 주요 기법 페이징(Paging) 장점 독립성, 보안, 메모리 확장성 단점 페이지 부재 발생 시 속도 저하 관련 구성 요소 페이지, 프레임, 페이지 테이블, TLB(변환 조회 버퍼) 등