문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. Virtual Memory [목차] == 개요 == 일반적으로 한 시스템의 여러 프로세스들은 [[CPU]]와 메인 메모리를 공유한다. CPU를 공유하는 부분에 대해서는 일반적으로 순서를 기다리느라 단지 느려질 뿐, 심각한 오류는 발생하지 않는다. 그러나 프로세스들이 존재하는 메모리가 여유가 없이 지나치게 많은 요구에 의해 오염될 경우,[* 의도치 않게 덧씌워진 경우 등.] 프로그램의 논리와 무관하게 오류가 난다. 이를 방지하기 위한 기술이 바로 가상메모리이다. 이런 가상메모리 기술은 무엇보다도 사용자가 신경 쓸 필요 없이 [[OS]] 측면에서 자동으로 작동한다는 점, 또한 사용자가 프로세스를 올리고 내림에 있어서 역시 사용자가 신경 쓸 필요 없이 OS의 가상메모리를 활용하여 자동으로 메모리 관리를 위임할 수 있다는 점이 가장 큰 성공 요인일 것이다. == 기능 == 가상 메모리의 주요한 기능은 다음 3가지로 요약할 수 있다. === 메인메모리의 효율적 관리 === 메인메모리[* 항상 [[RAM]]이지는 않으나, 일반적으로 이 역할을 RAM이 하므로 이하 램이라 한다. 또한 보조메모리는 그냥 하드디스크로 부른다. ~~[[SSD]]는?~~]를 하드디스크에 대한 캐시로 설정하여, 당장 사용하는 영역만 유지하고 쓰지 않는 데이터는 하드디스크로 옮긴 뒤, 필요할 때만 램에 데이터를 불러와 올리고 다시 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리한다. === 메모리 관리의 단순화 === 각 프로세스마다 가상메모리의 통일된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해진다. === 메모리 보장 === 한정된 램이 아닌 거의 무한한 가상메모리 공간을 배정함으로써 프로세스들끼리 메모리 침범이 일어날 여지를 제거한다. == 방식 == 하드디스크나 SSD 등의 보조기억장치에 메모리의 내용 일부를 읽고 쓰는 식이다. 가상메모리의 크기와 구조는 [[운영체제]]에 따라 다르다. == 단점 == 보조기억장치을 백업으로 두다 보니, RAM 용량을 초과하는 데이터를 다룰 경우 '''속도가 확연하게 느려진다.''' 보조기억장치 중 빠른 편에 속하는 SSD에서도 느려진 게 눈에 띄는데, 하드디스크라면 [[더 이상 말할 필요가 없다]]. 물론 메모리가 없어서 프로그램이 뻗는 것보다는 느리게나마 계속 쓰게 해 줄 수 있게 한다는 의의는 있다. == 참조 == * TLB * [[캐시]] * [[페이지]] * 페이지 테이블 * [[스와핑]] ~~뭐?~~ * [[링크]] * [[번역]] * 매핑 * 동적 메모리 할당 * [[조각모음|단편화]] ~~언젠간 다 작성할거야. 언젠간...~~ [[분류:메모리]] 가상메모리 문서로 돌아갑니다.