[Computer Science] 가상 메모리

김상현·2023년 8월 10일
0

CS

목록 보기
1/10
post-thumbnail

CPU와 Register

가상 메모리 기법이 개발된 유래는 다음과 같다. 컴퓨터에 발생하는 대부분의 연산은 CPU가 수행한다. CPU가 연산을 수행할 때 필요한 데이터를 일시적으로 저장하는 공간은 레지스터(register)이다. 레지스터는 용량은 작지만 CPU와 직접 연결되어 있기 때문에 메모리보다 연산속도가 훨씬 빠르다.

하지만 레지스터는 용량이 매우 작아서 연산에 필요한 모든 데이터를 저장할 수는 없다. 따라서 연산에 필요한 대부분의 데이터를 메모리에 저장해두고 연산에 당장 필요한 데이터만 메모리에서 레지스터로 불러와 연산을 수행한다.

RAM

컴퓨터에서 사용하는 RAM의 용량이 32GB라고 가정하자. League of Legend 프로그램은 16GB의 용량을 갖는다. RAM 용량이 32GB인 컴퓨터에서 League of Legend 프로그램을 수행한다면 League of Legend 전체 데이터를 RAM에 저장해두고 프로그램을 수행해도 RAM의 용량이 16GB가 남기 때문에 문제 없이 League of Legend를 수행할 수 있다.

문제는 GTA5 프로그램을 수행할 때 발생한다. GTA5 프로그램의 용량은 72GB이다. 만약 RAM의 용량이 32GB인 컴퓨터에서 GTA5 프로그램을 수행하게 된다면 RAM 용량의 부족하기 때문에 프로그램을 실행할 수 없게된다.

또 다른 문제로는 여러개의 프로그램을 한번에 수행하는 경우에 발생한다. 만약 16GB의 용량을 갖는 League of Legend 프로그램을 실행하면서 32GB에 해당하는 BATTLEGROUND 프로그램을 같이 실행하게 된다면 16GB에 해당하는 RAM의 용량으로는 2개의 프로그램을 감당할 수 없게 된다.

가상 메모리 기법

위에서 발생한 문제를 해결하기 위해서 만들어진 기법이 바로 가상 메모리 기법이다. 가상 메모리 기법이란 1개의 프로그램을 수행할 때 전체의 데이터를 RAM에 읽어오는 것이 아니라, 당장 실행에 필요한 데이터 일부를 RAM에 읽어오고 나머지 데이터는 디스크에 보관하는 형식이다.

예를 들어 현재 League of Legend의 경우 164개의 챔피언 데이터를 가지고 있다. 하지만 소환사의 협곡에서 플레이 하는 챔피언의 숫자는 10개 밖에 되지 않는다. 따라서 당장 실행에 필요한 데이터인 10개의 챔피언에 대한 정보는 RAM에 읽어오지만 나머지 154개에 해당하는 챔피언 데이터는 디스크에 보관한다.

가상 메모리 기법을 사용하게 되면 RAM의 용량이 실행하는 프로그램의 용량보다 작아도 충분히 프로그램을 실행할 수 있게 된다.

profile
목적 있는 글쓰기

1개의 댓글

comment-user-thumbnail
2023년 8월 10일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기