운영체제 - 메모리관리

김지승·2025년 10월 2일

CS

목록 보기
21/22

1. 페이징 (Paging)

  • 개념: 메모리를 고정된 크기의 블록으로 나누어 관리하는 기법.

    • 프로세스의 논리적 주소 공간(Logical Address Space)을 페이지(Page) 단위로 분할.
    • 실제 물리적 메모리(Physical Memory)는 프레임(Frame) 단위로 분할.
    • 페이지와 프레임의 크기는 동일.
  • 장점:

    • 외부 단편화(External Fragmentation) 없음.
    • 메모리 할당과 관리가 단순.
  • 단점:

    • 내부 단편화(Internal Fragmentation) 발생 가능 (페이지 크기보다 작은 데이터도 전체 페이지 차지).
    • 주소 변환 시 페이지 테이블(Page Table) 필요 → 오버헤드 발생.

2. 세그멘테이션 (Segmentation)

  • 개념: 메모리를 논리적 단위(코드, 데이터, 스택 등)로 나누어 관리하는 기법.

    • 각 세그먼트는 크기가 가변적.
    • 주소는 (세그먼트 번호, 오프셋)으로 표현.
  • 장점:

    • 프로그램 구조 반영 (코드, 데이터, 스택 등 영역 분리 가능).
    • 불필요한 메모리 접근 방지 → 보안/보호 용이.
  • 단점:

    • 외부 단편화(External Fragmentation) 발생.
    • 세그먼트 크기가 다양해 관리가 복잡.

3. 페이지 교체 알고리즘 (Page Replacement Algorithm)

메모리(프레임)가 가득 찼을 때, 새로운 페이지를 가져오기 위해 어떤 페이지를 내쫓을지 결정하는 방법입니다.

  1. FIFO (First-In First-Out)

    • 가장 먼저 들어온 페이지를 교체.
    • 단순하지만 성능이 떨어질 수 있음 (Belady’s Anomaly 발생 가능).
  2. OPT (Optimal Page Replacement)

    • 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체.
    • 이론적으로 가장 좋은 성능.
    • 실제 구현은 불가능(미래 참조를 알 수 없음) → 성능 비교 기준으로만 사용.
  3. LRU (Least Recently Used)

    • 가장 오래 전에 사용된 페이지를 교체.
    • 실제 시스템에서 많이 사용.
    • 구현 시 스택이나 참조 시간 기록 필요 → 오버헤드 존재.
  4. LFU (Least Frequently Used)

    • 참조 횟수가 가장 적은 페이지를 교체.
    • 단, 오래 전에 많이 쓰였던 페이지가 그대로 남는 문제 존재.
  5. Clock 알고리즘 (Second Chance)

    • FIFO 개선 버전.
    • 참조 비트를 두어, 0이면 교체 / 1이면 한 번 더 기회 부여.
    • 하드웨어에서 구현 용이, 실제 OS에서 자주 사용.
profile
디등

0개의 댓글