Memory Virtualization   메모리 가상화

(2021-03-26)

Virtual Memory, 가상 메모리, 가상 기억, 가상 기억장치, Physical Memory, 물리 메모리


1. 물리 메모리, 가상 메모리물리 메모리 : 메모리가 취급되는 주소 (실제의 주기억장치)
     - 한편, 주기억장치 내 개별 기억 셀들을 식별하기 위한 물리 주소가 있게 됨

  ㅇ 가상 메모리 : CPU가 생성하는 주소
     - 컴퓨터가 비록 상대적으로 작은 물리 메모리를 가지고 있어도,
     - 프로세스로 하여금 큰 물리 메모리를 사용하는 듯한 환상을 갖게 함
     - 통상, 운영체제 커널이 관리하는 주요 역할 중 하나


2. 가상 메모리 방식의 장점메모리CPU 가동율이 향상됨
     - 각 프로세스가 적은 물리 메모리를 사용함으로써, 
     - 동시에 많은 프로세스물리 메모리에 존재 가능
  ㅇ 파일 공유를 손쉽게 해 줌
  ㅇ 공유 메모리 구현을 가능케 함


3. 가상 메모리의 역할 (가상 기억 장치)

  ㅇ 가상 기억 장치의 개요
     - 프로세스 메모리 전체가, 물리 메모리에 적재되지 않더라도, 실행 가능케 함
     - 이를위해, 메모리의 실제 위치와는 구별되는, 가상적인 주소 공간의 개념을 필요로 함

  ㅇ 가상 기억장치의 역할
     - (동시성) 다수 프로세스들이 동시 실행 가능토록, 각각에 주소 공간 제공
     - (보호)   각 프로세스별 고유 메모리 자원을 보호해 줌
     - (공유)   필요시, 프로세스 간에 주소공간을 공유할 수 있게 함
     - (투명성) 주소공간프로그램에게 투명하게 제공 관리해 줌

  ㅇ 가상 기억 장치의 구성 요소
     - 주기억장치
     - 메모리관리장치(MMU)
        . 대부분의 가상 메모리 시스템은,
        . 물리주소에 접근하기 위해 프로세서에서 제공하는 MMU와 상호 협력 함
        . (매핑) 물리 메모리 페이지 프레임논리 메모리 페이지 프레임
     - 보조기억장치


4. 가상 메모리 관리 방식의 구분페이징 (Paging) 방식
     - 페이지라는 `고정 크기` 단위로 나누어 구분 관리
        . RAM을 일련의 동일 크기의 페이지 프레임(Page Frame)들로 구분시켜,
        . 이들 각각을 각 프로그램이 사용하는 메모리와 대응시킴
     - 운영체제 커널은, 
        . 각 프로세스에 대한 페이지 테이블(페이지 위치)을 유지관리 함
        . 사용되지 않는 페이지의 복사본은 스왑 영역에 보관되고,
        . 필요할 때 만 물리 메모리에 로드 됨
     - 만일, 현재 물리적 메모리에 없는 페이지를 참조하면 
        . 페이지 폴트(Page Fault)가 발생되고,
        . 해당 페이지를 찾아서 메모리에 적재하는 동안 프로세스 실행이 잠시 중지됨
     - 단점 : 내부 파편화 현상
          
  ㅇ 세그먼테이션 (Segmentation) 방식
     - 세그먼테이션이라는 `가변 크기` 단위로 구분 관리
     - 프로그래머가 생각하는 단편화된 메모리를,
        . 즉, 프로그래머가 생각하는 논리 구조 공간(프로그램,데이터 등 다양한 형태) 처럼,
        . 각각을 가변 세그먼트별로 대응시키는 메모리 관리 기법
     - 가변 크기의 세그먼트별로 다뤄짐
        . 접근 주소 : (세그먼트 이름/주소/번호 : 오프셋)  
        . 세그먼트 정보 : (코드,전역변수,,스택 등)   ☞ 런타임 메모리 참조
     - 단점 : 외부 파편화 현상으로, 메모리 낭비가 심한편

  ㅇ 페이지화된 세그먼테이션 방식
     - 위 두 방식의 장점을 절충

  ※ 한편, 이러한 메모리 관리 방식은 모두, 논리 주소와 실제 물리 주소 간의 매핑 테이블 필요


5. [참고사항]

  ※ ☞ 스왑 영역 참조
     - 가상 메모리 관리를 위해 사용되는 디스크 영역



"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"