[CS기초] 가상 메모리(Virtual Memory)와 페이징(Paging)

2025. 4. 26. 16:28·크래프톤 정글/CS기초(키워드, 개념정리)

가상 메모리(Virtual Memory)와 페이징(Paging)

운영체제를 공부하면서 반드시 짚고 넘어가야 할 개념 중 하나가 바로 가상 메모리(Virtual Memory)입니다. 그리고 이 가상 메모리를 구현하는 핵심 기법 중 하나가 바로 페이징(Paging)인데요. 이번 글에서는 이 두 개념에 대해 정리해보겠습니다.

 

 

가상 메모리(Virtual Memory)

가상 메모리는 물리적인 메모리(RAM)의 한계를 극복하고, 각 프로세스마다 독립적인 메모리 공간을 제공하기 위한 운영체제의 메모리 관리 기법입니다.

 

가상 메모리의 핵심 목적

  • 추상화(Abstract)
    • 프로세스가 마치 자신만의 큰 연속된 메모리를 가진 것처럼 보이게 함
  • 보호성(Protection)
    • 프로세스 간 메모리 접근을 격리
  • 효율성(Efficiency)
    • 실제 물리 메모리보다 더 큰 주소 공간을 사용할 수 있음

가상 주소 vs 물리 주소

  • 가상 주소(Virtual Address)
    • 프로세스가 보고 있는 주소
  • 물리 주소(Physical Address)
    • 실제 메모리(RAM)에 접근할 때 사용하는 주소
  • MMU(Memory Management Unit)라는 하드웨어가 이 변환을 담당

 

페이징(Paging)

페이징은 가상 메모리를 작은 고정 크기의 블록인 페이지(Page)로 나누고, 물리 메모리 역시 동일한 크기의 프레임(Frame)으로 나누어, 매핑하는 방식입니다.

 

페이징의 동작 원리

  1. 프로세스가 메모리를 페이지 단위로 요청
  2. 운영체제는 각 페이지를 물리 메모리의 빈 프레임에 할당
  3. MMU가 페이지 테이블(Page Table)을 통해 가상 페이지 번호를 물리 프레임 번호로 변환해 메모리에 접근

페이징의 주요 구조

가상 주소 = 페이지 번호 + 페이지 내 오프셋
물리 주소 = 프레임 번호 + 동일한 오프셋

 

 

관련 키워드 정리

용어 설명
Page 가상 메모리의 고정 크기 블록 (ex. 4KB)
Frame 물리 메모리의 고정 크기 블록 (Page와 동일 크기)
Page Table 가상 주소 → 물리 주소 매핑 정보를 저장
MMU 주소 변환을 수행하는 하드웨어
페이지 폴트(Page Fault) 해당 페이지가 메모리에 없어서 디스크에서 가져와야 할 때 발생
Demand Paging 필요한 페이지가 접근될 때 비로소 메모리에 적재

 

 

페이징의 장점과 단점

장점

  • 외부 단편화(External Fragmentation)가 없음
  • 메모리 보호, 공유가 쉬움
  • 스왑(Swap)과 같은 기법과 결합해 메모리 효율 증대

단점

  • 내부 단편화(Internal Fragmentation)가 생길 수 있음
  • 페이지 테이블이 커질 수 있음
    • TLB(페이지 테이블 캐싱), 다단계 페이지 테이블로 보완 가능

 

마치면서

가상 메모리와 페이징은 단순히 메모리 관리 기법을 넘어 보안성, 안정성, 효율성을 모두 잡기 위한 OS의 핵심 기술이라고 할 수 있는데요. 현대 운영체제에서는 페이징이 기본적으로 적용되어 있고, 이를 이해하는 것은 CS 전반에 큰 도움이 됩니다.

저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글

[CS기초] 메모리 단편화(Memory Fragmentation)  (0) 2025.04.28
[CS기초] 동적 메모리 할당 (힙, sbrk, malloc ,free)  (0) 2025.04.27
[중간정리] 6주차 - C언어(포인터), 이진탐색트리/RB트리/AVL트리  (0) 2025.04.23
[CS기초] 6주차 개념 정리  (0) 2025.04.22
[CS] RB트리(Red-black tree)의 삭제  (0) 2025.04.18
'크래프톤 정글/CS기초(키워드, 개념정리)' 카테고리의 다른 글
  • [CS기초] 메모리 단편화(Memory Fragmentation)
  • [CS기초] 동적 메모리 할당 (힙, sbrk, malloc ,free)
  • [중간정리] 6주차 - C언어(포인터), 이진탐색트리/RB트리/AVL트리
  • [CS기초] 6주차 개념 정리
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CS기초] 가상 메모리(Virtual Memory)와 페이징(Paging)
상단으로

티스토리툴바