운영체제 | 페이징 기법

성수당·2025년 9월 16일

운영체제

목록 보기
21/31
post-thumbnail

🥔 페이징 기법(Paging)이란?

운영체제는 메모리를 효율적으로 관리하기 위해 가상 메모리(Virtual Memory) 를 사용하고, 이를 구현하는 대표적인 기법 중 하나가 페이징(Paging)이다.

페이징은 고정 크기 단위로 메모리를 나누어 메모리 단편화를 줄이고, 주소 공간을 효율적으로 관리하는 기법이다.

🥔 왜 페이징이 필요할까?

메모리에 프로그램을 올릴 때 연속된 공간을 요구하면 외부 단편화(External Fragmentation)가 생긴다.

페이징은 고정 크기의 블록으로 메모리를 분할하고, 불연속적으로 저장하더라도 논리적으로 연속된 것처럼 보이게 한다.

🥔 페이징의 기본 개념

개념설명
Page (페이지)가상 주소 공간을 일정 크기로 나눈 블록 (예: 4KB)
Frame (프레임)물리 메모리를 페이지 크기와 동일한 단위로 나눈 블록
Page Table각 가상 페이지가 물리 프레임 어디에 매핑되는지 저장하는 자료구조
MMU (Memory Management Unit)CPU 가상 주소를 물리 주소로 변환하는 하드웨어 장치

🥔 주소 변환 방식

CPU는 항상 가상 주소(Virtual Address) 를 사용하고,
MMU는 가상 주소를 페이지 번호(Page Number)오프셋(Offset) 으로 나눈다.

가상 주소 = [페이지 번호 | 페이지 내 오프셋]

페이지 테이블에서 해당 페이지 번호에 대응하는 프레임 번호(Frame Number) 를 찾고, 그 프레임 번호 + 오프셋으로 실제 물리 주소를 계산한다.

🥔 주소 변환 예시

예를 들어, 32bit 주소 공간이고 페이지 크기가 4KB(2¹²)라면:

  • 페이지 번호: 상위 20bit
  • 오프셋: 하위 12bit
가상 주소 0x1234ABCD

→ 페이지 번호 = 0x1234A
→ 오프셋 = 0xBCD

→ 페이지 테이블에서 0x1234A 페이지가 프레임 0x3F에 매핑

→ 물리 주소 = 0x3FBCD

🥔 장점

  • 외부 단편화 제거: 고정 크기 블록이라 단편화 없음
  • 효율적인 메모리 활용: 필요한 페이지만 적재 가능 (Demand Paging)
  • 메모리 보호 및 격리: 프로세스 간 메모리 접근 차단 가능

🥔 단점

  • 페이지 테이블이 큼: 가상 주소 공간이 클수록 테이블 크기 증가
  • 주소 변환 오버헤드: MMU, TLB, 페이지 테이블을 거치며 지연 발생
  • 내부 단편화: 페이지보다 작은 데이터가 있으면 공간 낭비 발생

🥔 TLB (Translation Lookaside Buffer)

주소 변환 속도 문제를 해결하기 위해, 최근 참조한 페이지 매핑을 캐싱하는 구조

  • CPU ↔ TLB ↔ Page Table
  • TLB Miss 발생 시 Page Table 접근

TLB는 페이지 테이블보다 훨씬 빠르지만 용량이 적다.

🥔 페이징 구조 확장 기법

✅ 다단계 페이지 테이블 (Multi-level Paging)

  • 페이지 테이블이 너무 커질 때, 페이지 테이블 자체를 페이지화
  • 예: 2단계 → 페이지 디렉터리 + 페이지 테이블

✅ 인버티드 페이지 테이블 (Inverted Page Table)

  • 페이지 번호가 아닌 프레임 기준으로 페이지를 찾는 방식
  • 전체 시스템에 하나만 존재함 → 메모리 절약 가능

✅ 페이지 크기 확장

  • 최근 시스템에서는 4KB 외에도 2MB, 1GB 등 다양한 크기의 페이지 지원
  • TLB 효율 향상캐시 히트율 향상에 도움

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

구분페이징 (Paging)세그멘테이션 (Segmentation)
단위고정 크기 (Page)가변 크기 (Segment)
단편화내부 단편화 발생외부 단편화 발생
주소페이지 번호 + 오프셋세그먼트 번호 + 오프셋
장점단순하고 효율적논리적 단위에 적합 (함수, 변수 등)

실제 OS는 페이징 + 세그멘테이션을 혼합하여 사용하는 경우가 많다.

🥔 요약

  • 페이징은 가상 메모리를 고정 크기 블록으로 분할하여 효율적으로 관리하는 방식이다.
  • 페이지 테이블을 통해 가상 주소를 물리 주소로 매핑하고, MMU와 TLB가 이를 지원한다.
  • 메모리 단편화, 보호, 공유 측면에서 뛰어나지만, 변환 오버헤드가 존재한다.
  • 현대 OS의 기본 메모리 관리 기법이자 가상 메모리의 핵심이다.
profile
말하는 감자🥔

0개의 댓글