가상 메모리의 장점은 무엇입니까?


3

그래서 나는 가상 메모리를 읽었으며 모든 것이 간단하고 실용적입니다. 그러나 나는 하나의 주요 개념을 질식시키고 있습니다.

가상 메모리가 주 메모리에 저장되어 있다면 왜 처음부터 사용합니까? 왜 메인 메모리를 사용하지 않습니까?

나는 여기에 뭔가 빠져 있다고 확신하지만 아직 무엇을 이해하지 못합니다.


1
> 가상 메모리가 메인 메모리에 저장되어 있다면 … 다시 읽어야 할 부분이라고 생각합니다.
slhck

가상 메모리 주소 공간 과 실제 메모리 주소 공간 으로 생각 하십시오 . 각 공정은, 상기 프로세서는 각각의 공정을 분리하기 때문에 가상 어드레스 "4GB의 생각 갖는다.
surfasb

답변:


6

가상 메모리는 RAM에 저장할 수 있지만 다른 프로세스에 실제 RAM이 필요한 경우 디스크로 스왑 할 수 있습니다. 이것은 중요한 기능 중 하나입니다. 디스크에 있으면 다른 프로세스는 시스템 RAM을 사용하여 처리 속도를 높일 수 있습니다. 필요한 경우 디스크로 스왑 된 메모리를 다시로드 할 수 있으며 다른 위치로 이동시킬 수 있습니다.

오늘날의 많은 컴퓨터에는 필요한 것보다 많은 RAM이 있으므로 스와핑이 최소화되지만 (성능이 저하 될 수 있음) 필요한 경우 스왑 옵션을 사용하는 것이 좋습니다.


3

가상 메모리를 사용하면 2GB 컴퓨터에서 10 x 1GB 응용 프로그램을 동시에 실행할 수 있습니다.

수요 페이징

VM은 프로그램을 메모리에로드하고 데이터를위한 메모리를 제공하는 대신 프로그램에 필요한 메모리를위한 디스크 공간 (페이징 파일 또는 이와 동등한 공간)을 할당하지만 "요청 페이징"을 사용하여 작은 부분을 실제 메모리에만로드합니다. 프로그램 및 데이터에 대해 덜 사용되는 부품 (예 : 드물게 사용되는 서브 루틴)은 실제 메모리에로드되지 않을 수 있습니다. 다른 프로그램에 실제 메모리가 필요한 경우 실제 메모리의 사용되지 않은 부분이 사용되며, 가장 오래된 클린 페이지가 삭제되지 않으면 클린 페이지가 남아 있지 않으면 메모리의 "더러운 페이지"가 ​​페이징 파일에 기록됩니다 ( 페이지는 프로그램 이진 파일에서로드 된 원본과 동일하므로 추가 사본을 저장할 필요가 없습니다. VM은이 모든 것을 추적합니다.

스와핑

과거에는 스와핑 (swaping)이라는 별도의보다 절실한 메모리 관리 방법도 필요했습니다. 요즘 용어는 거의 동의어로 사용됩니다.


어쨌든 "run"의 일부 정의에 대해서는
grawity

@RedGrittyBrick 깨끗 하고 더러운 페이지의 의미는 무엇입니까 ?
Geek

@Geek : 클린 페이지는 디스크에서 할당되거나로드 된 후에 변경되지 않은 페이지입니다. 따라서 다른 프로세스에 사용하기 전에 디스크에 내용을 저장할 필요가 없습니다. 더티 페이지는 프로세스에 의해 작성된 페이지이므로 원래 프로세스가 재개 될 때 페이지를 복원 할 수 있도록 해당 프로세스를 해당 메모리를 다른 프로세스에 재사용하기 전에 저장해야합니다.
RedGrittyBrick

@RedGrittyBrick 설명해 주셔서 감사합니다.
Geek

1

이점은 다음과 같습니다.

  1. 코드 / 태스크를 컴파일하는 동안 컴파일러 / 링커는 코드 / 텍스트 (명령), 데이터 (글로벌 변수), 스택의 주소를 결정 / 할당해야합니다.

MMU (Memory Management Unit)가 있는 시스템 (즉, 가상 메모리 지원)

컴파일러 / 링커는 필요에 따라 주소를 자유롭게 사용할 수 있습니다. 코드가 실행되는 동안 MMU는 가상 주소를 실제 주소로 변환합니다.

MMU가없는 시스템 : 컴파일러와 링커는 시스템 메모리에 따라 주소를 할당해야합니다. 다른 작업의 메모리 영역을 사용해서는 안됩니다.

장점 : 컴파일러 / 링커는 시스템의 메모리 맵을 신경 쓸 필요가 없습니다.

  1. 시스템 메모리 가용성과 비교할 때 실제로 작업에 할당 된 메모리 공간이 매우 크기 때문에 작업 프로그래밍이 쉬워집니다 (이는 필요한 데이터 / 코드를 주 메모리에 유지하고 나머지는 보조 저장소에 유지함으로써 달성됩니다).
  2. 시스템 서비스 기능을 복제 할 필요는 없습니다. 모든 작업의 ​​모든 시스템 서비스 가상 주소는 시스템 서비스가 포함 된 동일한 물리적 주소에 매핑 될 수 있습니다.
  3. 간단히 말해서, 메모리 할당은 MMU에 의해 태스크를 실행하는 동안 처리 될 태스크를 코딩하는 동안 고려 될 필요가 없다.

Coming to your Question: If virtual memory is stored in main memory, then why even use it in the first place?Why not just use main memory?

가상의 기억 / 주소는 물리적 주소 / 메모리의 표현입니다. 이 표현은보다 쉬운 멀티 태스킹 구현, 메모리 관리, 시스템 메모리 세부 사항없이 태스크 개발을 달성하는 데 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.