페이징 기법

정경훈·2025년 4월 14일

CS

목록 보기
1/4

운영체제에서 페이징(Paging) 기법은 가상 메모리 관리 방식 중 하나로, 프로세스의 논리적 주소 공간을 일정한 크기의 페이지 단위로 나누고, 물리적 메모리도 같은 크기의 프레임 단위로 나누어 매핑하는 방식.

📌 페이징 기법의 핵심 개념

  • 페이지(Page): 프로세스의 논리적 주소 공간 단위
  • 프레임(Frame): 물리적 메모리(RAM)의 고정된 블록 단위
  • 페이지 테이블(Page Table): 각 페이지에 대한 프레임 번호를 저장하는 매핑 테이블
  • 페이지 폴트(Page Fault): 페이지가 메모리에 없을 때 발생하는 예외 → 디스크에서 불러와야 함

🧠 작동 원리

프로세스는 자신의 메모리를 연속적인 공간(논리 주소)으로 인식함.

운영체제는 이를 고정된 크기의 페이지로 나눔.

물리 메모리도 동일한 크기의 프레임으로 나눔.

페이지 테이블을 통해 페이지 번호 ↔ 프레임 번호를 매핑.

CPU는 논리 주소 → 페이지 번호 + 오프셋 으로 변환 → 프레임 번호 조회 → 물리 주소 접근.

😁등장 배경

메모리 관리의 초기 방식은 연속 할당 방식(Contiguous Allocation)이었다.

프로세스가 메모리에 올라갈 때, 연속된 공간을 할당하는 방식으로

이러한 방식은 구현은 간단하지만, 시간이 자니면 할당과 해제가 반복되며 메모리 사이사이에 자투리 공간이 생기는 문제가 발생했다.

이러한 공간이 생기는 현상을 외부 단편화(External Fragmentation)라고 한다.

예: 총 1,000KB의 여유 공간이 있지만, 모두 100KB 단위로 흩어져 있다면 200KB짜리 프로세스는 들어갈 수 없음.

✅ 해결 방법 1: 압축(Compaction)
단편화 문제를 해결하려고, 메모리 내 프로세스를 한쪽으로 몰아서 빈 공간을 연속되게 만드는 작업을 수행.

하지만 이 방식은 시간이 오래 걸리고, 수행 도중 CPU를 중지해야 하는 단점이 있었음.

✅ 해결 방법 2: 페이징(Paging) 기법의 등장
그래서 등장한 방식이 비연속적 할당이 가능하면서도 운영체제가 효율적으로 관리할 수 있는 방법, 바로 페이징이에요.

✅ 장점

외부 단편화(External Fragmentation) 없음

프로세스 전체를 메모리에 올리지 않아도 실행 가능 (요구 페이징 가능)

가상 메모리를 효율적으로 활용할 수 있음

관련 기법

기반 설명
TLB 페이지 테이블 접근을 빠르게 하기 위한 캐시
요구 페이징(Demand Paging) 실제로 접근할 때만 메모리에 로딩
다단계 페이지 테이블 큰 페이지 테이블을 계층적으로 구성해 메모리 절약
스와핑(Swapping) 메모리 부족 시, 일부 페이지를 디스크로 옮김
profile
뉴비 개발자...가 되고싶다..

0개의 댓글