본문 바로가기
전산 관련 시험/전산학(컴퓨터일반) 개념정리

[OS] 페이징 기법 VS 세그멘테이션 기법

by 응_비 2024. 9. 10.

1. 기본 개념

  • 페이징 (Paging)
    • 정의: 가상 주소 공간과 물리 주소 공간을 동일한 크기의 고정된 크기(페이지, 프레임) 단위로 분할하여 관리하는 기법.
    • 단위: 페이지(Page)와 프레임(Frame) – 일반적으로 페이지 크기는 4KB 등 고정 크기.
    • 목적: 외부 단편화 문제를 해결하고, 메모리 할당을 단순화.
  • 세그멘테이션 (Segmentation)
    • 정의: 논리적인 단위(세그먼트)로 메모리를 분할하여 관리하는 기법. 각 세그먼트는 프로그램의 논리적 구조(코드, 데이터, 스택 등)에 따라 크기가 다를 수 있음.
    • 단위: 세그먼트(Segment) – 세그먼트의 크기는 가변적.
    • 목적: 프로그램의 논리적 구조를 반영하여 메모리를 관리하고, 논리적 단편화를 최소화.

2. 메모리 분할 방식

  • 페이징
    • 메모리를 고정 크기의 페이지로 나누고, 각 페이지를 물리 메모리의 프레임에 매핑.
    • 모든 페이지는 동일한 크기를 가지므로 관리가 용이함.
  • 세그멘테이션
    • 메모리를 논리적인 세그먼트로 나누며, 각 세그먼트는 다른 크기를 가질 수 있음.
    • 세그먼트는 프로그램의 함수, 배열, 데이터 구조 등과 같이 의미 있는 단위로 분할됨.

3. 주소 변환

  • 페이징
    • 논리 주소: 페이지 번호(Page Number) + 오프셋(Offset)
    • 물리 주소: 프레임 번호(Frame Number) + 오프셋(Offset)
    • 주소 변환은 페이지 테이블을 통해 이루어지며, 고정된 크기 덕분에 변환이 단순함.
  • 세그멘테이션
    • 논리 주소: 세그먼트 번호(Segment Number) + 세그먼트 내 오프셋(Offset)
    • 물리 주소: 세그먼트의 기초 주소(Base Address) + 오프셋
    • 주소 변환은 세그먼트 테이블을 통해 이루어지며, 각 세그먼트의 크기가 다르기 때문에 유연성이 있음.

4. 장단점 비교

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

장점 - 외부 단편화 없음
- 고정된 크기로 인한 단순한 메모리 관리
- 페이지 교체 알고리즘이 잘 정립됨
- 논리적 단편화 감소
- 프로그램의 논리적 구조와 일치하여 이해 용이
- 세그먼트 단위의 보호 및 공유 용이
단점 - 내부 단편화 발생 가능
- 페이지 테이블 관리 오버헤드 발생
- 외부 단편화 발생
- 세그먼트 테이블 관리가 복잡
- 세그먼트 크기 조정 어려움
단편화 내부 단편화 외부 단편화
메모리 할당 고정된 크기 단위로 할당 가변 크기 단위로 할당
관리 복잡성 비교적 단순 상대적으로 복잡
적용 사례 현대의 대부분 운영체제 (예: Windows, Linux 등) 일부 고급 시스템이나 특정 애플리케이션에서 사용

5. 결합 사용

많은 현대 운영체제에서는 페이징과 세그멘테이션을 결합한 세그멘테이션-페이징(Segmentation-Paging) 기법을 사용합니다. 이 방식은 세그먼트의 논리적 구조를 유지하면서, 각 세그먼트를 페이징하여 외부 단편화를 줄이고, 메모리 관리의 유연성과 효율성을 동시에 추구합니다.


6. 예시

  • 페이징 예시
    • 가상 메모리: 16페이지 (각 페이지 4KB)
    • 물리 메모리: 8프레임 (각 프레임 4KB)
    • 페이지 테이블을 통해 가상 페이지를 물리 프레임에 매핑하여 메모리 접근.
  • 세그멘테이션 예시
    • 프로그램의 코드 세그먼트, 데이터 세그먼트, 스택 세그먼트 등으로 분할.
    • 각 세그먼트는 다른 크기를 가지며, 세그먼트 테이블을 통해 물리 메모리 내 위치를 관리.

결론

페이징과 세그멘테이션은 각각의 장단점을 가지고 있으며, 메모리 관리의 목적과 시스템의 요구에 따라 적절히 선택되거나 결합되어 사용됩니다. 페이징은 단순하고 효율적인 메모리 관리가 가능하지만, 내부 단편화의 문제가 있을 수 있으며, 세그멘테이션은 논리적 구조를 반영하여 메모리를 관리할 수 있지만, 외부 단편화와 관리의 복잡성이 존재합니다. 현대 운영체제는 이러한 두 기법의 장점을 살리기 위해 종종 결합된 방식을 채택하고 있습니다.

댓글