Memory Virtualization   메모리 가상화

(2023-12-08)

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


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

  ㅇ 가상 메모리  :  CPU가 생성하는 주소
     - 컴퓨터가 비록 상대적으로 작은 물리 메모리를 가지고 있어도,
       . 프로세스로 하여금 큰 물리 메모리를 사용하는 듯한 환상을 갖게 함
     - 운영체제 커널이 관리하는 주요 역할 중 하나
       . 각 프로세스가 자신 만의 주소 공간을 갖도록,
       . 개별 프로세스 각각에, 0부터 최대까지 연속 증가하는, 가상 주소 공간을 제공
     - 이에따라, 실제 물리 주소가 아닌, 각각의 프로세스가 접근 가능한,
       . 가상 주소 공간 내 `가상 주소 (논리 주소)`가 있게 됨


2. 가상 메모리 방식의 장점메모리CPU 가동율이 향상됨
     - 각 프로세스가 적은 물리 메모리를 사용함으로써, 
     - 동시에 많은 프로세스물리 메모리에 존재 가능
  ㅇ 프로세스 간에 격리
     - 논리 메모리와 물리 메모리를 서로 분리해 주는 것 외에,
     - 프로세스 간에 완벽한 격리도 가능
  ㅇ 메모리 공유
     - 2 이상의 프로세스들에 의해, 페이지 공유를 가능케 함
        . 여러 프로그램이 같은 프로그램 코드를 공유 가능
        . 공유 메모리 구현 (프로세스 간 통신)
  ㅇ 메모리 보호 기능 가능
     - 프로세스 마다 독립된 가상 메모리에다가 다른 권한 부여 가능


3. 가상 메모리의 개요, 역할, 구성 (가상 기억 장치)

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

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

  ㅇ 가상 기억 장치의 구성 요소
     - 주기억장치
     - 메모리관리장치(MMU) : 가상 메모리 구현에 반드시 필요한 하드웨어 지원 장치
        . 대부분의 가상 메모리 시스템은, 가상주소로부터 물리주소에 접근하기 위해,
           .. 프로세서에서 제공하는 MMU와 상호 협력 함
        . (역할 : 매핑) 물리 메모리 페이지 프레임논리 메모리 페이지 프레임
           .. CPU -(논리주소)-> MMU -(물리주소)-> 물리 메모리
        . 만일, 존재 않는 페이지 프레임 요청시, 커널에게 페이지 폴트 발생을 알림
     - 보조기억장치


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

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

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


5. [참고사항]

  ㅇ 인위적 연속성
     - 가상 주소 공간에서는 연속적이지만, 실 주소 공간에서도 연속적일 필요 없음을 말함

  ㅇ 요구 페이지 호출, 요구 페이징 (Demand Paging)
     - 가상 메모리 상에 페이지가 실제 참조되어야 그 페이지를 메모리에 적재하는 방법

  ㅇ 동적 적재 (Dynamic Loading)
     - 프로그램 내 루틴이 필요한 경우에 만 적재됨
        . 각 루틴은 실제 호출되기 전까지는 메모리에 적재되지 않고, 
        . 재배치 가능한 상태기억장치에서 대기하다가 필요시 적재됨
     - 동적 적재 방식은 운영체제로부터 특별한 지원이 필요없음

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

메모리 관리
   1. 참조의 지역성 (계층구조)   2. 캐쉬 메모리   3. CAM   4. MMU   5. 가상 메모리   6. 런타임 메모리   7. 메모리 맵핑  
가상화기술
   1. 가상화 기술   2. 서버 가상화   3. 메모리 가상화   4. 스토리지 가상화   5. 클라우드 컴퓨팅  
메모리 관리
   1. 메모리 관리   2. 가상 메모리   3. 스와핑   4. 페이징   5. MMU  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"