페이징과 세그멘테이션의 차이점

hannah·2025년 10월 21일

CS

목록 보기
4/16

운영체제는 한정된 메모리를 효율적으로 관리하기 위해 논리 주소(Logical Address)물리 주소(Physical Address)로 변환하는 방식을 사용한다. 이때 대표적인 메모리 관리 기법으로 페이징(Paging)세그멘테이션(Segmentation)이 있다.


🟨 1️⃣ 페이징(Paging)

페이징은 프로세스의 논리 주소 공간을 동일한 크기의 고정된 단위(Page)로 나누고, 이를 물리 메모리의 프레임(Frame) 단위에 매핑하는 방식이다.
즉, 프로세스는 논리적으로 연속된 공간을 사용하는 것처럼 보이지만 실제 물리 메모리에서는 불연속적으로 저장된다.

📘 핵심 개념

  • Page : 프로세스의 논리적 단위 (고정 크기)
  • Frame : 물리 메모리의 단위 (고정 크기)
  • Page Table : 페이지 번호와 프레임 번호의 매핑 정보를 저장

📊 특징

  • 외부 단편화(External Fragmentation) 없음
  • 내부 단편화(Internal Fragmentation) 발생 가능
  • 접근 속도 빠르고, 메모리 관리가 단순

아래 그림처럼 여러 프로세스(P1~P4)가 각자의 페이지를 물리 메모리의 프레임 단위로 나누어 사용하는 구조이다.
프로세스는 논리적으로 연속된 공간을 사용하지만 실제로는 물리적으로 흩어져 있다.

페이징 개념도


🟩 2️⃣ 세그멘테이션(Segmentation)

세그멘테이션은 프로세스의 논리 주소 공간을 의미 단위(Segment)로 나누는 방식이다.
각 세그먼트는 코드, 데이터, 스택 등 논리적으로 구분된 영역이며, 크기가 서로 다르다.

📘 핵심 개념

  • Segment : 의미 단위의 메모리 블록 (가변 크기)
  • Segment Table : 각 세그먼트의 시작 주소(Base)와 크기(Limit)를 저장

📊 특징

  • 외부 단편화 발생 가능
  • 내부 단편화는 없음
  • 논리적 구조를 반영하기 때문에 관리가 유연함

아래 그림은 세그먼트 단위로 메모리를 관리하는 구조이다.
각 세그먼트는 서로 다른 크기를 가지고 있으며, 세그먼트 테이블을 통해 물리 주소를 계산한다.

세그멘테이션 그림 예시


⚖️ 3️⃣ 페이징 vs 세그멘테이션 비교

구분페이징 (Paging)세그멘테이션 (Segmentation)
단위고정 크기의 Page가변 크기의 Segment
관리 기준물리적 단위논리적 단위
단편화내부 단편화외부 단편화
주소 변환페이지 테이블 사용세그먼트 테이블 사용
사용 목적메모리 관리 효율성프로그램 논리 구조 반영

📌 정리하자면,

  • 페이징은 메모리를 효율적으로 나누는 물리적 기법,
  • 세그멘테이션은 프로그램의 논리적 구조를 반영한 기법이다.

운영체제에서는 실제로 두 방식을 결합한 “세그먼트 페이징(Segmented Paging)” 기법도 사용하여 각각의 장점을 활용한다.

0개의 댓글