제가 한동안 Linux를 사용해왔는데, 가상 메모리라고 하면 스왑 공간을 말하는 건가요? 예를 들어 top 명령에는 별도의 열이 있습니다.가상 현실 기술(가상 메모리), 리눅스 머신의 스왑 공간을 말하는 걸까요? 가상 메모리와 스왑 공간이 같은 것인지 알고 싶습니다. 누구든지 이 혼란을 해결하도록 도와줄 수 있나요?
답변1
top
맨페이지다음과 같이 구별하십시오.
우리의 목적을 위해 세 가지 유형의 메모리가 있으며 그 중 하나는 선택 사항입니다. 첫 번째는 코드와 데이터가 실행되거나 참조되는 동안 상주해야 하는 제한된 리소스인 물리적 메모리입니다. 다음은 물리적 메모리에 대한 수요가 과도해질 때 수정된(더티) 메모리를 저장하고 검색할 수 있는 선택적 스왑 파일입니다. 마지막으로 다음과 같은 목표를 달성할 수 있는 거의 무제한의 리소스인 가상 메모리가 있습니다.
- 요약, 물리적 메모리 주소/한계의 영향을 받지 않음
- 격리, 각 프로세스는 별도의 주소 공간에 있습니다.
- 공유, 하나의 매핑으로 여러 요구사항 충족 가능
- 유연성, 파일에 가상 주소 할당
VIRT
의 열에는 top
프로세스가 할당한 주소 공간의 양이 표시됩니다. 대부분은 일반적으로 사용되지 않습니다. 언제예사용 후 커널은 프로세스에서 물리적 메모리를 사용할 수 있도록 해야 합니다. 이상적으로는 이 물리적 메모리를 사용 가능한 메모리 풀에서 가져올 수 있으며 다른 것에는 영향을 미치지 않습니다. 그러나 사용 가능한 물리적 메모리가 충분하지 않은 경우 커널은 메모리의 다른 데이터를 삭제해야 합니다.저것이것이 스왑 공간이 들어오는 곳입니다. 커널이 메모리를 사용 가능하게 만드는 방법 중 하나는 해당 내용을 스왑 공간에 쓰는 것입니다.
VIRT
가상 메모리는 다소 추상적인 개념입니다. show 의 열과 마찬가지로 top
프로세스 표현이 사용할 수 있는 모든 메모리입니다. 스왑 공간은 프로세스가 메모리를 사용해야 할 때 커널이 메모리를 사용할 수 있도록 돕는 방법입니다.