8-1.[os] 가상 메모리의 개요

가상 메모리

  • virtual memory
  • 컴퓨터마다 물리 메모리, 즉 실제 메모리의 크기가 다름
  • 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술
  • 물리 메모리의 크기와 프로세스가 올라갈 메모리의 위치를 신경 쓰지 않아도됨
  • 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술
  • 프로세스는 운영체제어디에 있는지, 물리 메모리크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있다

가상 메모리 시스템

가상 메모리 개념

  • 논리 주소: 물리 메모리의 주소 공간에 비례
  • 가상주소: 물리 메모리 공간이 아닌 가상의 주소공간

image.png

이론: 가상 메모리 = 무한대의 크기? 실제: 가상 메모리의 최대 크기 = 물리 메모리의 최대 크기 = CPU의 비트 크기 = 예시) 32bit CPU -> 2^32-1(16진수로 FFFFFFFF) -> 4GB -> 메모리의 최대 크기 & 가상 메모리의 최대 크기

  • 물리 메모리의 부족한 부분을 스왑 영역으로 보충
  • 스왑 영역: 하드디스크에 존재하지만 메모리 관리자가 관리 하는 영역으로서 메모리의 일부
  • 스왑 아웃: 물리 메모리가 꽉 찼을 때 일부 프로세스를 스왑 영역으로 보냄
  • 스왑인: 프로세스가 작업을 마치면 스왑 영역에 있는 프로세스를 메모리로 가져옴
  • 가상 메모리의 크기: 물리 메모리(실제 메모리)+ 스왑영역

동적 주소 변환

  • Dynamic Address Translation (DAT)
  • 가상 주소를 실제 메모리의 물리 주소로 변환
  • 메모리 관리자가 물리 메모리를 어떤 방법으로 나눌지, 사용자 프로세스를 어디에 배치할지, 부족한 물리 메모리를 어떻게 처리할지 등의 복잡한 문제를 처리

가상 메모리의 메모리 분할방식

  • 운영체제를 제외한 나머지 메모리 영역을 일정한 크기로 나누어 일반 프로세스에 할당
  • 세그먼테이션-페이징 혼용 기법

image.png


매핑 테이블의 필요성과 역할

  • 메모리 관리자는 가상 주소와 물리 주소를 일대일 매핑 테이블로 관리
  • 가상주소 -> 매핑테이블 -> 물리 메모리
  • 물리 메모리가 세그먼테이션이나 페이징으로 분할된 경우:
    • 페이지 매핑 테이블 page mapping table
    • 세그먼테이션 매핑 테이블 segmentation mapping table

image.png

Did you find this article valuable?

Support Software Engineer at Your Service by becoming a sponsor. Any amount is appreciated!