Virtual Memory와 Paging

|

가상 메모리

소프트웨어가 물리 메모리에 직접 접근해서 사용하지 않고, 프로세서가 운영체제와 조합하여 소프트웨어와 물리 메모리 사이의 가상 계층을 만드는 것이다.

프로세서는 메모리에 접근할 때 페이지 테이블을 참고하고 실제로 어떤 물리 메모리를 사용해야 하는지 알려준다. 페이지 테이블은 하나의 물리 메모리 페이지에 대응된다.

물리 메모리는 고정된 크기의 ‘페이지’라는 단위로 관리된다. (기본 4K 크기)

페이지 테이블은 프로그램을 완벽하게 격리시키고, 자신이 실행되기 위한 샌드박스를 가질 수 있다

페이징

물리 메모리에서 사용되지 않는 영역이 하드 드라이브에 일시적으로 저장된다. 물리 메모리가 빠르고 비싸기 때문에, 오랫동안 사용하지 않는 영역을 하드 드라이브에 저장시키고 메모리 사용을 계속해서 요청하면 메모리를 할당해 준다.

이는 하드디스크 스와핑이 되며 컴퓨터가 갖고 있는 실제 메모리보다 많은 공간을 메모리로 사용할 수 있게 된다.

또한, 이미 페이징된 페이지에 접근한다면 프로세서는 페이지 폴트를 발생시킨다.

스와핑이 많아지면 속도가 느려진다

스왑 메모리 (가상 메모리) 확인하기

  • Top 명령어 2097148 total, 530224 free, 1566924 used. 7378624 avail Mem

  • free -m 명령어 Swap Memory의 사용량이 많을 때 클리어 해준다.