최근 수정 시각 : 2020-02-01 14:31:13

가상메모리

Virtual Memory

1. 개요2. 기능3. 방식4. 특징5. 참조

1. 개요

일반적으로 한 시스템의 여러 프로세스들은 CPU와 메인 메모리를 공유한다. CPU를 공유하는 부분에 대해서는 일반적으로 순서를 기다리느라 단지 느려질 뿐, 심각한 오류는 발생하지 않는다. 그러나 프로세스들이 존재하는 메모리가 여유가 없이 지나치게 많은 요구에 의해 오염될 경우,[1] 프로그램의 논리와 무관하게 오류가 난다. 이를 방지하기 위한 기술이 바로 가상메모리이다.

이런 가상메모리 기술은 무엇보다도 사용자가 신경 쓸 필요 없이 OS 측면에서 자동으로 작동한다는 점, 또한 사용자가 프로세스를 올리고 내림에 있어서 역시 사용자가 신경 쓸 필요 없이 OS의 가상메모리를 활용하여 자동으로 메모리 관리를 위임할 수 있다는 점이 가장 큰 성공 요인일 것이다.

2. 기능

가상 메모리의 주요한 기능은 다음 3가지로 요약할 수 있다.
  • 주기억장치의 효율적 관리 : 주기억장치[2]를 하드디스크에 대한 캐시로 설정하여, 당장 사용하는 영역만 유지하고 쓰지 않는 데이터는 하드디스크로 옮긴 뒤, 필요할 때만 램에 데이터를 불러와 올리고 다시 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리한다.
  • 메모리 관리의 단순화 : 각 프로세스마다 가상메모리의 통일된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해진다.
  • 메모리 용량 및 안정성 보장 : 한정된 공간의 램이 아닌 거의 무한한 가상메모리 공간을 배정함으로써 프로세스들끼리 메모리 침범이 일어날 여지를 크게 줄인다.[3]

3. 방식

하드디스크SSD 등의 보조기억장치에 주기억장치, 즉 램의 내용 일부를 전달해 쓰고 읽는 식이다. 가상메모리의 크기와 구조는 운영체제에 따라 다르다.

4. 특징

보조기억장치의 속도가 주기억장치인 RAM보다 매우 느리기 때문에 RAM 용량을 초과하는 데이터를 다뤄서 보조기억장치를 끌어다 쓰게 될 경우 시스템의 속도가 확연히 느려진다. NVMe 방식을 쓰는 고급형 SSD의 데이터 전송 속도조차 DIMM의 1세대 메모리인 DDR1 RAM 의 최고 전송속도인 1,600~3,200 MB/s수준에 불과하다. [4] 게다가 그건 순차 읽기/쓰기 기준에서나 통하는 얘기고 4k읽기/쓰기로 가면 아직 D램 발끝도 못 따라간다. 램은 순차, 4k 상관없이 일정한 읽기/쓰기 속도를 보장한다. 그게 아니면 정의상 RAM이 될 수 없다. 인텔이 옵테인 메모리로 DRAM의 의존성 줄이겠다고 하는데 일반 낸드 쌈싸먹는 옵테인 조차도 DRAM의 4k읽기쓰기는 절대 못 따라간다. 요즘 대중화된 DDR4 RAM (2,666 MHz 기준)의 속도는 21,300 MB/s 이고, 추가 장착하는 RAM 만큼 대역폭이 또 증가[5]하기 때문에, 평소에 이러한 속도로 작업을 하다가 보조기억장치를 끌어다 쓰게 되면 시스템의 전체적인 성능이 엄청나게 저하된다.

5. 참조



[1] 의도치 않게 덧씌워진 경우 등.[2] 항상 RAM이지는 않으나, 일반적으로 이 역할을 RAM이 하므로 이하 램이라 한다. 또한 보조메모리는 그냥 하드디스크로 부른다.[3] 사실상 없앤다고 봐도 무방하나 완전히 없애는 경우는 없다.[4] PCIE 4.0 시스템 구성에서는 그나마 최대 5,000MB/s의 읽기 및 쓰기 구성이 가능하다.[5] 보통 2개씩 장착하는 듀얼채널의 경우 2,666 * 2 MHz

분류