운영체제 | 가상 메모리

성수당·2025년 9월 16일

운영체제

목록 보기
20/31
post-thumbnail

🥔 가상 메모리(Virtual Memory)란?

운영체제는 물리 메모리(RAM)의 한계를 극복하고, 더 효율적이고 안전한 메모리 관리를 위해 가상 메모리(Virtual Memory) 를 사용한다.

가상 메모리는 논리적으로 무한한 메모리 공간을 제공하는 추상화다.

🥔 가상 메모리의 핵심 아이디어

  • 프로그램은 자신만의 독립적인 주소 공간을 가진 것처럼 보임
  • 실제로는 운영체제가 물리 메모리와 디스크를 관리하면서 필요한 부분만 로딩
  • 주소 변환은 MMU(Memory Management Unit)와 페이지 테이블이 수행

🥔 가상 메모리의 장점

장점설명
주소 공간 분리각 프로세스는 자신의 메모리 공간을 가지고 있어 서로 간섭 불가
보안성 향상커널 영역과 사용자 영역을 구분하여 보호
효율적 자원 활용실제 필요한 메모리만 물리 메모리에 적재
프로세스 간 공유공유 메모리를 통해 통신 가능
프로그램 크기 제한 해제물리 메모리보다 큰 프로그램도 실행 가능

🥔 주소 변환: 가상 주소 → 물리 주소

가상 메모리를 쓰는 프로그램의 주소는 실제 RAM 주소가 아니다.
CPU는 가상 주소(Virtual Address)를 사용하고, MMU가 페이지 테이블(Page Table) 을 통해 물리 주소로 변환한다.

[Virtual Address] --(MMU + Page Table)--> [Physical Address]

이 과정을 주소 매핑(Address Mapping) 이라고 한다.

🥔 페이지(Page)와 프레임(Frame)

가상 메모리는 고정 크기 단위인 페이지(Page) 로 나뉘며,
물리 메모리 역시 동일한 크기의 프레임(Frame) 으로 나뉜다.

항목설명
Page가상 메모리의 단위
Frame물리 메모리의 단위
Page TablePage → Frame으로의 매핑 정보를 저장한 표

일반적으로 페이지 크기는 4KB (x86 기준)

🥔 Page Fault란?

필요한 페이지가 아직 메모리에 올라와 있지 않은 경우, CPU는 해당 페이지를 찾지 못하고 Page Fault 예외를 발생시킨다.

운영체제는 이 신호를 받고:

  1. 디스크에서 해당 페이지를 읽어옴 (Demand Paging)
  2. 메모리에 적재하고
  3. 페이지 테이블을 갱신한 뒤
  4. 다시 명령어를 재시도

→ 이 과정을 통해 지연은 있지만, 메모리 낭비 없이 실행 가능

🥔 가상 메모리 구현 전략

✅ Demand Paging

  • 실제로 필요할 때만 페이지를 적재하는 방식
  • 초기에는 최소한의 메모리만 할당
  • Page Fault가 발생하면 디스크에서 불러옴

✅ Swapping

  • 메모리가 부족하면 일부 페이지를 디스크로 내보냄
  • 필요할 때 다시 불러옴 → Swap In / Swap Out

✅ Copy-On-Write (COW)

  • 부모-자식 프로세스가 메모리를 공유하지만
    실제로 쓰기(write) 가 발생할 때 복사하는 기법
  • fork() 후 효율적으로 메모리를 활용하는 데 사용됨

🥔 가상 메모리 vs 물리 메모리

항목가상 메모리물리 메모리
관리 주체운영체제(OS)하드웨어(RAM)
주소프로세스 기준 논리 주소실제 주소 (RAM 위치)
용량 제한이론적으로 매우 큼실제 장착된 메모리 용량
보안프로세스 간 격리 가능직접 접근 시 취약할 수 있음

🥔 요약

  • 가상 메모리는 운영체제가 제공하는 메모리 추상화로, 효율성과 보안성을 높여준다.
  • MMU + 페이지 테이블을 통해 가상 주소 → 물리 주소 매핑
  • Page, Frame, Page Fault, Demand Paging 등의 개념이 핵심
  • 현대의 모든 운영체제는 가상 메모리 기반으로 동작함
profile
말하는 감자🥔

0개의 댓글