2025-11-27

오늘 배운 것

페이징(Paging) & 세그멘테이션(Segmentation)

1. 공통 목적

둘 다 물리 메모리를 효율적으로 관리하기 위한 분할 기법이다. 큰 메모리 공간을 쪼개어 관리함으로써 단편화를 줄이고, 프로세스별 메모리 보호 기능을 강화할 수 있다.


2. 페이징 (Paging)

(1) 개념

가상 메모리와 물리 메모리를 고정 크기 블록으로 나누어 매핑하는 방식이다.

  • Page: 가상 메모리의 고정 크기 블록
  • Frame: 물리 메모리의 고정 크기 블록
  • Page Table: Page와 Frame의 매핑 정보
  • MMU: VA → PA 주소 변환 수행

(2) 특징

  • 분할 크기가 고정
  • 물리 메모리가 연속적이지 않아도 된다
  • 논리 주소 구조: [페이지 번호 | 오프셋]
  • 물리 주소 계산: Frame 시작 주소 + Offset

(3) 장점 / 단점

  • 장점
    • 외부 단편화가 없다
    • 주소 변환 과정이 단순
    • 프로세스를 물리 메모리 곳곳에 흩어 배치할 수 있다
  • 단점
    • 내부 단편화가 발생할 수 있다
    • 페이지 테이블 크기 증가
    • TLB 미스 시 주소 변환 오버헤드 증가

3. 세그멘테이션 (Segmentation)

(1) 개념

프로그램 구조(코드, 데이터, 스택 등)에 따라 의미 단위로 가변 크기 분할하는 방식.

  • Segment: 의미 있는 단위(코드/데이터/스택 등)
  • Segment Table: 세그먼트의 시작 주소(base)와 길이(limit) 저장

논리 주소 구조: [세그먼트 번호 | 오프셋]

(2) 특징

  • 분할 크기가 가변
  • 사용자/프로그램의 논리적 구조가 그대로 반영됨
  • 외부 단편화 발생 가능
  • 세그먼트 단위로 접근 권한 설정이 쉬움

(3) 장점 / 단점

  • 장점
    • 프로그램 구조와 일치하므로 직관적
    • 세그먼트별 보호 및 접근 제어
  • 단점
    • 외부 단편화 발생
    • 세그먼트 크기 관리 어려움

4. Paging vs Segmentation 비교

항목 Paging Segmentation
분할 기준 고정 크기 의미 단위
분할 크기 동일 서로 다름
주소 구조 페이지 번호 + 오프셋 세그먼트 번호 + 오프셋
단편화 내부 단편화 외부 단편화
매핑 방식 Page Table Segment Table
장점 단편화 해결, 관리 단순 논리 구조 반영, 보호 쉬움
단점 Page Table 오버헤드 외부 단편화

5. Segmented Paging

세그멘트 안에 페이지를 도입한 구조.

프로그램 논리 구조(세그먼트)와 물리 메모리 효율성(페이징)을 결합한 방식이며, x86 계열에서 널리 사용된다.

results matching ""

    No results matching ""