본문 바로가기

computer

가상 메모리 개요

CS를 매우 설명 잘해주시는 유튜브 널널한 개발자 채널의 가상 메모리 개요를 듣고 요약한 내용입니다.

 

컴퓨터에서 메모리는 보통 1차, 2차 메모리를 떠올린다.

1차 - RAM, 2차 - HDD 또는 SDD를 이야기한다.

 

가상 메모리를 사용함으로 컴퓨터는 크게 두 가지 장점이 생긴다.

 

첫째는 디바이스마다 다른 메모리 하드웨어에 대한 의존성을 낮춰주는 것이다.

예를들어, 어떤 컴퓨터는 4GB의 Ram과 128GB의 HDD를 사용하고

다른 기기는 8GB, 4TB의 기기를 사용한다면, 각각 기기에 맞는 메모리 관리 체계를 만들어서

컴퓨터를 사용해야 했지만 가상메모리 기법을 통해 메모리를 추상화하여 장치의 의존성을 개선할 수 있다.

 

둘째는 관리적 의미에서 장점이 있다.

이는 물리메모리 (physical memory)로의 직접적인 접근을 방지하여 보안 측면에서도 매우 큰 이점이 있다.

 

메모리는 1byte마다 주소가 붙는다. 이에 따라 32bit CPU의 경우 4GB를 관리할 수 있다.

64bit 컴퓨터는 대략 16EB 정도 된다고 한다.  OS 지원에 의해 실제로는 훨씬 적지만 앞으로 어느정도 시간은

64bit 체제로 컴퓨터 세계가 운영가능 하다고 한다.

32bit CPU가 관리 가능한 4GB의 메모리에서도 반절인 2GB는 kernel이 사용하고 user는 반절인 2GB에서

OS에게 약간의 영역을 넘겨주고 대략 1.8GB 정도 사용할 수 있다.

 

논리 메모리 영역(Virtual Memory Space)에서는 프로세스 마다 0번지부터 시작되는 주소를 갖는다.

세 개의 프로세스가 존재한다면 모두 0번지 논리 주소를 갖겠지만, 물리적인 주소는 서로 다르다.

물리영역의 segment (paging으로 관리된다면 page)가 서로 다를 것이고 메모리나 혹은 디스크의 swap영역에 있을 수도 있다.

 

가상메모리 기법에서 M.M (Memory Manager)의 역할은 중요하다.

MM은 Ram과 디스크의 swap영역을 관리하는 장치로 논리 영역과 물리 영역을 연결해주는 매핑테이블을 관리한다.

MM으로 논리, 물리 영역을 관리하는 것은 메모리 회수에 장점이 있다.

어떤 프로세스가 에러가 있고 지속적으로 프로세스가 재시작 되는 상황에서,

메모리 회수가 되지 않는다면 컴퓨터가 사용할 수 있는 메모리의 양은 컴퓨터를 재부팅하기 전까지 줄어들 것이다.

MM으로 관리하는 상황에서는 장애가 발생한 논리영역을 사용하지 않는 영역으로 MM에서 제거하면

해당 영역에 쉽게 접근할 수 있다.

 

자세한 설명과 그림은 널널한 개발자님 영상을 통해 확인하면 좋을 듯 합니다.

 

 

REFERENCE

https://youtu.be/-jlzaslp-w4