가상 메모리 (Virtual Memory)

컴퓨터과학·AI
한 줄 정의: 운영체제가 실제 물리적 메모리 용량보다 더 큰 메모리 공간이 있는 것처럼 각 프로세스에게 독립된 주소 공간을 제공하는 메모리 관리 기법입니다.

쉽게 풀면

실제 창고는 크지 않은데, 여러 세입자에게 각자 훨씬 넓은 개인 창고를 쓰고 있다고 착각하게 만드는 관리 시스템을 떠올려봅시다. 관리자는 각 세입자가 지금 당장 필요로 하는 물건만 실제 창고에 옮겨두고, 당장 쓰지 않는 물건은 저 멀리 있는 큰 보관소(디스크)에 맡겨두었다가 필요할 때 다시 꺼내옵니다. 가상 메모리도 이와 같습니다. 실제 물리 메모리(RAM)는 한정되어 있지만, 운영체제는 각 프로그램에게 "너만 쓸 수 있는 넓은 메모리 공간"이 있는 것처럼 보여주고, 실제로 필요한 부분만 물리 메모리에 올려두고 나머지는 디스크에 두었다가 필요할 때 불러옵니다(페이징).

왜 중요한가

가상 메모리는 프로세스 간 안전한 격리와 한정된 물리 메모리의 효율적 활용을 동시에 가능하게 해주는 운영체제의 근간 기술이기 때문에, 시스템 소프트웨어·컴퓨터 구조 연구에서 성능 최적화의 기본 전제로 다뤄집니다. 최근에는 대규모 딥러닝 모델 학습이나 데이터베이스 시스템처럼 메모리 사용량이 큰 워크로드가 늘면서, 페이지 교체 정책이나 메모리 관리 방식 자체를 개선하려는 연구도 활발히 이뤄지고 있습니다.

논문에서는 이렇게 쓰입니다

"메모리 제약 환경에서의 성능을 평가하기 위해 가상 메모리의 페이지 교체 정책을 달리하여 실험을 진행하였다."

이 문장은 운영체제, 시스템 성능 평가를 다루는 논문의 실험 설계 부분에서 자주 등장합니다. 가상 메모리는 프로세스 간 메모리 격리와 효율적인 자원 활용을 가능하게 하는 핵심 기술로, 시스템 소프트웨어 연구에서 배경 지식이자 실험 변수로 다뤄집니다.

"대규모 모델 학습 시 발생하는 메모리 부족 문제를 완화하기 위해 GPU 메모리에도 가상 메모리와 유사한 페이징 기법을 적용한 시스템을 제안하였다."

물리 메모리가 부족할 때 필요한 부분만 올려두고 나머지는 다른 저장 장치에 두었다가 불러오는 가상 메모리의 아이디어를, GPU 메모리 관리에도 응용해 큰 모델을 학습할 수 있게 했다는 뜻이다.

"임베디드 시스템의 제한된 자원 환경에서 가상 메모리 도입 여부가 응답 지연 시간에 미치는 영향을 비교 분석하였다."

메모리가 넉넉하지 않은 소형 기기에서 가상 메모리 기법을 쓸 때와 안 쓸 때 시스템 반응 속도가 어떻게 달라지는지 비교했다는 의미다.

조금 더 깊게 보면

가상 메모리는 프로세스가 사용하는 가상 주소를 실제 물리 주소로 바꿔주는 페이지 테이블(page table)과, 이 변환을 빠르게 처리하기 위한 캐시인 TLB(Translation Lookaside Buffer)를 기반으로 동작하며, 필요한 페이지가 물리 메모리에 없을 때 발생하는 페이지 폴트(page fault)를 처리하는 과정에서 디스크와의 데이터 이동(스와핑)이 일어납니다. 페이지를 어떤 기준으로 교체할지 결정하는 페이지 교체 알고리즘(LRU, FIFO 등)의 선택은 시스템 성능에 직접적인 영향을 주기 때문에, 관련 연구에서 자주 비교 대상이 됩니다.

주의할 점

가상 메모리 덕분에 각 프로세스와 스레드는 서로의 메모리 공간을 침범하지 않고 안전하게 격리되지만, 물리 메모리와 디스크 사이의 데이터 이동(스와핑)이 지나치게 잦아지면 실제 연산보다 메모리 이동에 더 많은 시간을 쓰는 스래싱(thrashing)이라는 성능 저하 현상이 발생할 수 있습니다.

관련 용어