본문 바로가기

Computer Science/Operating System

[Operating System] 가상메모리와 물리메모리

728x90
반응형

물리메모리

실제로 존재하는 메모리 그 자체이다. 우리가 RAM이라고 부르는 메인메모리나 HDD와 같은 것들이 물리메모리이며 이러한 메모리에 데이터가 실제로 위치하는 곳이 물리주소(physical address)이다.

 

가상메모리

메모리계층이라고 부르는 캐시-메인메모리-하드디스크와 같은 구조는 데이터를 더 빠르게 주고 받기 위해 사용되는 방법이다. 캐시로 갈수록 더 빠르지만 크기가 작다는 한계가 있다. 이러한 한계를 극복하기 위해 만들어진 개념이 가상메모리(virtual memory)이다. 

 

가상메모리를 통해 CPU는 물리메모리보다 더 큰 메모리를 가진 것처럼 메모리를 사용할 수 있다. 정확하게 말하면 OS가 그런 착각을 일으킨다. OS는 CPU에게 가상주소를 할당하고 CPU는 가상주소를 통해 명령어를 수행한다.

 

예를 들어 메인메모리가 8G이고 4G인 프로그램을 3개 실행한다고 가정해보자. 4G인 프로그램 3개를 돌리려면 최소 12G 물리메모리가 필요하다. 그러나 가상메모리를 활용하면 현재 수행하는데 필요한 데이터만을 가져와서 8G의 메모리만으로 3개의 프로그램을 모두 실행할 수 있다.

 

MMU (Memory Management Unit)

가상메모리를 통해 CPU는 더 많은 프로그램을 한 번에 수행할 수 있게 되었다. 그러나 실제 데이터에 접근하기 위해서는 어찌되었든 물리메모리가 필요하다. 이때 가상주소를 물리주소로 변환해주는 장치가 MMU이다. 즉 CPU는 가상메모리를 다루며, 주소에 접근할 필요가 있을 때에만 MMU를 통해 물리주소로 접근한다. 

  • CPU는 가상주소를 통해 명령어를 수행한다.
  • MMU는 가상주소를 물리주소로 변환해준다.
  • Memory는 데이터를 담고 있는 물리메모리이다.
728x90
반응형