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  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)