염딩코

가상 메모리(Virtual memory)란? 본문

TIL

가상 메모리(Virtual memory)란?

johnyeom 2023. 6. 8. 20:41

 

가상 메모리컴퓨터 시스템에서 물리적 메모리의 용량을 초과하여 프로그램의 메모리 공간을 가상적으로 늘이는 기술입니다.

주요 이점은 크게 메모리 관리 향상, 컴퓨터 자원의 효율적 사용프로세스 구현 단순화 등입니다.

 

가상 메모리는 페이징 및 세그먼테이션 방식으로 구현되며, 사용하는 주소 공간은 물리적 메모리 넘어서어 하드 디스크 또는 SSD에 저장되어 있습니다.

 

가상 메모리의 주요 동작 과정은 다음과 같습니다:

 

1. 주소 변환: 프로그램이 실행되기 위해 가상 주소가 참조됩니다 이 때, 가상 주소를 물리적인 메모리 주소로 변환하는 단계가 필요합니다. 이 과정에서 MMU(Memory Management Unit)가 주소 변환 역할을 수행합니다.

 

2. 메모리의 데이터 로드 및 저장: 변환된 물리 주소에 대한 데이터를 로드하거나 저장합니다. 이 과정에서 CPU는 해당 데이터를 읽고 쓰며 프로그램이 실행됩니다.

 

3. 페이지 부재(Page fault): 요청된 가상 주소가 물리 메모리에 없는 경우 페이지 부재가 발생합니다. 이 때, 운영 체제는 가상 주소를 포함하는 페이지를 하드 디스크 또는 SSD에서 찾아 물리 메모리에드하며, 이후 MMU를 통해 물리 주소 변환을 수행합니다. 페이지 부재 처리를 통해 프로그램이 필요로 하는 페이지만 메모리에 올리므로 메모리를 효율적으로 활용할 수 있습니다.

 

4. 페이지 교체: 물리 메모리 공간이 부족할 때, 적절한 페이지를 하드 디크로 다시 저장하거나 제거해야 합니다. 이 과정에서 LRU(Least Recently Used), FIFO(First In First Out) 등의 페이지 교체 알고리즘이 사용됩니다.

 

가상 메모리 기술은 컴퓨터 시스템의 메모리 관리를 향상시키고 자원 사용을 최적화하여 성능 개선하며, 개발자들이 물리적 메모리 제약 없이 프로그램을 개발할 수 있도록 지원합니다.