가상 메모리와 실제 메모리

ps -eo euser,pid,vsz,rss,comm | grep [process id] 명령어를 실행할 경우 출력 되는 vsz, rss 값은 다음과 같다.

  • euser : OS User
  • pid : 프로세스 id
  • vsz(VIRT) : 가상 메모리 크기
  • rss : 실제 점유 중인 메모리 크기
  • comm : command 명

pmap [process id] 명령어를 사용하면 프로세스의 메모리 할당 현황을 보여준다.
pmap 결과의 가장 밑에 할당된 전체 메모리의 합이 나오는데, 이 값은 ps 명령어의 vsz 값과 동일하다.
메모리 정보가 vsz 와 rss 로 나뉘는 이유는 OS 가 한정된 메모리로 많은 일을 하기 위해
가상메모리 기술을 사용하고 있기 때문이다.

가상메모리 는 메모리 관리 기법 중 하나로 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 사용하는 방식을 말한다.
가상으로 주어진 주소를 가상주소 또는 논리주소 라고 하며, 실제 메모리 상에서 유효한 주소를 물리 주소 또는 실제 주소라고 한다.
가상 주소 공간은 메모리 관리 장치(MMU) 를 통해 물리 주소로 변환된다.
이를 통해 개발자는 가상 주소 공간에 프로그램을 짜게되고 프로그램이나 데이터가 실제 메모리에 어떻게 존재하는지 알 필요가 없어진다.