가상 메모리와 상주 메모리
가상 메모리(Virtual Memory)
가상 메모리는 프로그램이 실제 물리 메모리(RAM)의 크기와 상관없이 더 큰 메모리 공간을 사용할 수 있도록 하는 메모리 관리 기법입니다. 이는 하드웨어와 소프트웨어의 협력을 통해 구현되며, 프로그램이 사용하는 메모리 주소(가상 주소)를 실제 물리 메모리 주소로 매핑합니다. 이러한 방식으로 각 프로세스는 독립된 메모리 공간을 가지며, 물리 메모리의 효율적인 사용과 프로그램 간의 메모리 보호를 가능하게 합니다.
가상 메모리는 물리 메모리와 디스크 공간을 결합하여 사용되며, 사용하지 않는 데이터는 디스크로 이동시키고, 필요한 데이터는 다시 물리 메모리로 불러오는 방식으로 동작합니다. 이러한 동작은 페이지 단위로 이루어지며, 이를 통해 메모리 사용의 효율성을 높입니다.
상주 메모리(Resident Memory)
상주 메모리는 현재 물리 메모리에 로드되어 있는 프로세스의 메모리 양을 의미합니다. 이는 프로세스가 실제로 물리 메모리를 얼마나 사용하고 있는지를 나타내며, 공유 라이브러리에 의해 할당된 메모리, 힙, 스택 메모리도 포함됩니다. 상주 메모리는 디스크로 스왑되지 않은 메모리 영역을 나타내며, 시스템의 메모리 사용 현황을 파악하는 데 중요한 지표로 사용됩니다.
리눅스 시스템에서 프로세스의 메모리 사용량을 확인할 때, ps 명령어를 통해 VSZ(Virtual Set Size)와 RSS(Resident Set Size)를 확인할 수 있습니다. VSZ는 프로세스가 할당받은 가상 메모리의 전체 크기를 나타내며, RSS는 실제 물리 메모리에서 프로세스가 차지하는 메모리의 크기를 나타냅니다. 이러한 정보를 통해 프로세스의 메모리 사용 패턴을 분석하고 시스템의 메모리 관리에 활용할 수 있습니다.
가상 메모리와 상주 메모리는 시스템의 메모리 관리와 프로세스의 효율적인 실행을 위해 필수적인 개념입니다. 이해를 돕기 위해 아래에 간단한 비교 표를 제공합니다.
구분 | 가상 메모리(Virtual Memory) | 상주 메모리(Resident Memory) |
정의 | 프로그램이 사용할 수 있도록 운영체제가 제공하는 추상화된 메모리 공간 | 현재 물리 메모리에 로드되어 있는 프로세스의 메모리 양 |
특징 | 물리 메모리보다 큰 주소 공간 제공, 메모리 보호 및 프로세스 간의 격리 | 실제 물리 메모리 사용량을 나타내며, 공유 라이브러리, 힙, 스택 메모리 포함 |
측정 방법 | ps 명령어의 VSZ(Virtual Set Size)로 확인 | ps 명령어의 RSS(Resident Set Size)로 확인 |
관련 개념 | 페이지, 스왑, 페이지 폴트 등 | 물리 메모리, 공유 메모리, 스왑 등 |