본문 바로가기

가상 메모리

1. 가상 메모리

 

디스크의 일부를 메모리처럼 사용하는 기술을 말한다.

메모리의 일부를 디스크처럼 사용하는 디스크 캐시가 가상 디스크인 것처럼,

디스크의 일부를 메모리처럼 사용하는 기술은 가상 메모리(Virtual memory)인 것이다.

 

가상 메모리는 메모리가 부족한 경우에도 크기가 큰 프로그램을 사용할 수 있게 한다. 

그러니까 메모리 여유 공간이 5MB여도 10MB짜리 프로그램을 실행할 수 있다는 이야기다.

 

하지만 실행을 위해서는 실행되는 부분이 메모리 상에 있어야 한다. 그래서 가상 메모리를 

구현하려면 ⒜실제 메모리와 가상 메모리의 내용을 서로 바꾸면서 프로그램을 실행해야 한다.

 

윈도우에서는 가상 메모리를 제공한다. 이는 ⒝OS 차원에서 지원되며, 큰 효과를 보고 있다.

가상 메모리 구현 기법에는 페이징(paging) 기법과 ⒞세그먼테이션이 있다. 

윈도우에서는 전자를 채택했다.

 

페이징 기법이란 프로그램을 구조와 상관없이 페이지(page)라는 단위로 분할한 후

메모리와 디스크의 내용을 ⒟스와핑하는 기법이다.

이 때 디스크에서 메모리로 읽어오는 작업은 페이지 인(page-in)이라 하고

메모리의 내용을 디스크로 쓰는 작업은 페이지 아웃(page-out)이라 한다.

 

 

실행되는 페이지가 페이지 인 되고, 아직 실행되지 않은 페이지가 페이지 아웃 된다.

 

윈도우에서는 가상 메모리 구현을 위해 디스크에 ⒠페이징 파일을 생성한다.

이 파일은 윈도우에 의해 자동으로 관리되며, 보통 실제 메모리의 1~2배의 크기로 생성한다.

제어판에서 이 파일을 수정할 수 있다.

작성자의 컴퓨터(Windows 10)의 경우 다음의 경로로 페이징 파일을 설정할 수 있다.

 

[내 PC] 우클릭 -> 속성 -> 고급 시스템 설정 -> 고급 -> [성능]의 [설정] -> [고급]

제어판 -> 시스템 및 보안 -> 시스템 -> 고급 시스템 설정 -> (이하 동일)

 

 

필자의 컴퓨터의 경우 메모리는 8GB고, 페이징 파일의 크기는 1280MB다.

 

 

⒜실제 메모리: 물리적 메모리(Physical memory)를 말한다. 

 

⒝OS(Operating System): 운영체제.

 

⒞세그먼테이션(Segmentation): 프로그램을 처리 데이터의 집합 등 유의미한 단위(segment)로 분할해

                                         메모리와 디스크의 내용을 스와핑 하는 기법.

 

⒟스와핑(swapping): 맞교환, 서로 자리를 바꾸는 것.

 

⒠페이징 파일(paging file): 가상 메모리가 되는 파일.

'Programming > Basis' 카테고리의 다른 글

디스크의 구조  (0) 2019.03.18
메모리를 절약하는 방법  (0) 2019.03.12
디스크 캐시  (0) 2019.03.10
프로그램이 실행되는 순서  (0) 2019.03.09
메모리  (0) 2019.03.07