본문 바로가기

오래된 흔적/MEMORY

메모리가 부족하면 컴퓨터가 느린 것은 왜 그런걸까?


메모리가 부족하면 컴퓨터가 느린 것은 왜 그런걸까? ★_IT_컬럼_

2009/06/04 14:17

복사 http://lifehack.kr/90048359776

<이 글은 이전에 제가 포스팅한 "컴퓨터가 느려질 때 7가지 개선방법" 글에서 메모리 부족에 관한 보충 자료입니다.>

이는 가장 메모리라는 기능과 관계가 있다. 가상 메모리는 아주 간단하게 설명하자면, 메모리의 부족한 부분을 하드디스크로 채우는 구조를 말한다. 운영체제의 메모리 관리 기능은 프로세스(프로그램)마다 독립된 메모리 공간을 할당한다. 윈도우는 특히 하나의 프로세스에 대해서 4GB의 큰 공간을 할당한다.

4GB 메모리공간을 가진 프로세스는 동시에 얼마든지 실행하기 시작하면 상당한 양의 메모리를 소비한다. 일반적인 컴퓨터에 내장된 메모리 용량은 512MB에서 많아야 2GB정도이기 때문에 실행중의 프로세스의 가상 메모리의 내용을 모두 물리적인 메모리에 기록할 수 없는 것도 자주 발생한다. 이때 운영체제는 물리적인 메모리에 다 들어가지 못하는 데이터를 하드디스크에 저장한다.

그렇다면 하드디스크에 저장한 데이터가 필요하게 되면 어떻게 할까? 이런 경우 운영체제는 물리적인 메모리의 데이터를 검색하고 사용하지 않은 데이터를 하드디스크로 옮기고 필요한 데이터를 읽어들인다. 데이터를 하드디스크로 옮기는 것을 스왑 아웃이라고 하며, 하드디스크에서 메모리로 데이터를 읽어들이는 것은 스왑인이라고 말한다. 즉, 컴퓨테에 내장된 물리적인 메모리가 작으면, 물리적인 메모리에 배치할 수 있는 프로그램이 줄어들어, 스왑인과 스왑아웃이 빈번하게 일어난다는 것이다.

물리적인 메모리는 나노초 단위로 액세스할 수 있지만, 하드디스크의 액세스는 ms단위 시간이 걸린다. 스왑인과 스왑아웃이 빈번하다면 하드디스크의 읽기가 많아져, 프로그램 처리속도가 떨어지게 된다.

페이징에 대해서도 설명하자면, 메모리는 1byte마다 번지(주소)가 있다. 가상 메모리 공간 주소를 가상적인 주소라고 말하고 물리적인 메모리 주소를 물리적인 주소라고 말한다.

프로그램이 메모리 주소를 지정할 때, 가상 주소를 지정한다. 즉, 실제 데이터에 도착하려면, 가상 주소를 물리적인 주소로 변환해야 한다. 이때 페이지이라는 기능이 사용된다. 메모리 공간처음부터 일정한 크기(페이지 사이즈 - x86기반의 경우 4KB)에 분할하여 페이지 크기마다 가상 메모리공간과 물리적인 메모리 공간을 대응시키는 기능이다. 이 부분은 운영체제가 가지는 페이지 테이블이라는 변환표로 관리한다.

이런 이유때문에 여러분들의 컴퓨터가 느려지는 것이다. 되도록 원활하게 사용하고자 한다면 물리적인 메모리를 최대한 늘리는 것을 추천하고 싶다

'오래된 흔적 > MEMORY' 카테고리의 다른 글

Visual Leak Detector  (0) 2009.06.26
Process ID 얻기..  (0) 2009.06.10
특정 process가 차지하는 메모리 변화에 관하여..  (0) 2009.06.10
Windows Vista Kernel 관련 자료  (0) 2009.06.09