본문 바로가기
CS

가상 메모리(Virtual memory)

by 남생이야 2024. 6. 16.

 

 

가상메모리

  가상 메모리는 프로그램이 실제 물리적인 메모리량보다 큰 메모리 공간을 사용할 수 있게 하는 기술을 말한다.

 

  • 보조기억 장치를 주기억 장치처럼 사용하려는 개념
  • 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리를 준다.
  •  가상으로 주어진 주소를 가상 주소(virtual address) 또는 논리 주소라고 하기도 하며, 실제 메모리 상에서 유효한 주소를 물리 주소(Physical address)라고 한다. 
  •  가상 주소는 메모리 장치 관리(MMU)에 의해서 물리 주소로 변환된다. 
  • 가상 메모리는 세그먼트 방식과 페이징 방식 2종류가 있다. 

 

페이징 방식

 페이지 (Page) - 가상 메모리와 물리 메모리를 작은 고정 크기의 블록으로 나눈 단위를 말한다.

 

  페이지의 크기는 하드웨어에 의해 결정되며 운영체제는 페이지들을 페이지 테이블이라는 자료구조를 이용하여 관리한다. 프로세스마다 저마다의 페이지 테이블을 갖고 있다. 

 MMU를 사용하여 가상 주소를 페이지 테이블을 참조하여 물리주소로 변환한다. 이때 페이지  폴트가 발생할 수 있다. 

 페이지 폴트 (Page fault)  -  프로그램이 참조한 가상 주소에 해당하는 페이지가 물리 메모리에 없는 경우를 말한다. 운영체제는 디스크에서 해당 페이지를 읽어 물리 메모리에 로드하게 된다. 

 

 페이지폴트가 발생하게 되면  운영체제는 해당 페이지를 디스크에서 물리 메모리로 로드하고 페이지 테이블을 갱신하는 처리를 진행한다.  

 페이지를 교체하는 알고리즘으로는 LRU(Least Recently Used)와 FIFO(First-In-First-Out)이 있다. 

 

가상 메모리의 장점 

  •  확장성 - 물리 메모리보다 더 큰 주소 공간을 제공하여 프로그램이 더 많은 메모리를 사용할 수 있게  된다.
  •  보호 - 각 프로세스 별로 가상 주소 공간을 가지므로 서로 간에 침범을 방지한다.
  •  효율성 - 실제로 필요한 메모리만 물리 메모리에 로드하여 사용하므로 메모리 사용의 효율성을 높인다.
  •  단순화 - 물리 메모리 크기에 신경 쓰지 않고 프로그램을 사용할 수 있다. 

 

 

 

 

 

참고 문헌

https://ko.wikipedia.org/wiki/%EA%B0%80%EC%83%81_%EB%A9%94%EB%AA%A8%EB%A6%AC

 

가상 메모리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 가상 메모리는 활성 RAM과 DASD 상의 비활성 메모리로 결합되어 있다. 가상 메모리 또는 가상 기억 장치(문화어: 가상기억기, virtual memory, virtual storage)는 메모리

ko.wikipedia.org

 

'CS' 카테고리의 다른 글

메모리 단편화  (0) 2024.06.27
캐시 메모리 (Cache memory)  (0) 2024.06.16
씬 그래프(Scene graph)  (0) 2024.06.13
메모리 인터리빙(Memory Interleaving)  (0) 2024.06.11
단일 책임 원칙(SRP)  (0) 2024.06.08