Memory Virtualization   메모리 가상화

(2025-06-27)

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


1. 물리 메모리, 가상 메모리

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

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


2. 가상 메모리 방식의 장점

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


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

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

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

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


4. 가상 메모리 관리 방식의 구분

  ㅇ 페이징 (Paging) 방식                     ☞ 메모리 페이징 참조
     - 프로그램 실행 중 필요할 때 만 고정 크기의 페이지를 적재하는 기법
     - 단점 : 내부 파편화 현상
          
  ㅇ 세그먼테이션 (Segmentation) 방식         ☞ 메모리 세그멘테이션 참조
     - 프로그램 실행 중 필요할 때 만 가변 크기의 세그먼트를 적재하는 기법
     - 단점 : 외부 파편화 현상으로, 메모리 낭비가 심한편     

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

  ※ [참고]
     - 이러한 메모리 관리 방식은 모두, 논리 주소와 실제 물리 주소 간의 매핑 테이블 필요
     - 페이징, 세그멘테이션 간의 주요 비교
        . 페이징 (Paging)  :  고정 크기 단위로 메모리를 분할
        . 세그멘테이션 (Segmentation)  :  가변 크기 단위로 메모리를 분할


5. [참고사항]

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

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

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

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

▷ 메모리 관리
1. 참조의 지역성 (계층구조)   2. 캐쉬 메모리   3. CAM   4. MMU   5. 가상 메모리   6. 런타임 메모리   7. 메모리 맵핑  
▷ 가상화기술
1. 가상화 기술   2. 서버 가상화   3. 메모리 가상화   4. 스토리지 가상화   5. 클라우드 컴퓨팅   6.
▷네트워크 가상화
 
▷ 메모리
1. 메모리 관리   2. 가상 메모리   3. 메모리 페이징   4. 메모리 세그멘테이션   5. 스와핑   6. MMU  
용어해설 종합 (단일 페이지 형태)

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