포스트

임베디드 스터디 - 가상메모리, 요구 페이징, 스래싱, 워킹셋

임베디드 스터디 - 가상메모리, 요구 페이징, 스래싱, 워킹셋

요구 페이징(Demand Paging)

  • 가상 메모리의 핵심 기법 — 프로그램 전체를 물리 메모리에 올리지 않아도 실행 가능
  • 핵심 원리: 페이지를 필요할 때에만 물리 메모리에 로드
  • 페이지 테이블의 유효 비트로 해당 페이지가 물리 메모리에 있는지 여부를 표시

페이지 폴트(Page Fault)

  • CPU가 접근하려는 페이지가 물리 메모리에 없을 때 발생
  • 페이지 폴트 발생 시 페이지 폴트 인터럽트가 발생하여 OS가 개입

처리 과정

1
2
3
4
5
6
7
8
① CPU가 페이지 접근 시도
② 페이지 테이블 확인 → 유효 비트 = 0 (페이지 없음)
③ 페이지 폴트 인터럽트 발생 → OS 개입
④ OS가 디스크(스왑 영역) 에서 해당 페이지 탐색
⑤ 빈 프레임 있음 → 바로 로드
   빈 프레임 없음 → 희생 페이지 선택 후 교체
⑥ 페이지 테이블 갱신 (유효 비트 = 1)
⑦ CPU 재실행

스래싱(Thrashing)

  • 정의: 페이지 폴트가 너무 빈번하게 발생하여 CPU가 실제 작업보다 페이지 교체에 대부분의 시간을 소비하는 현상
  • 발생 원인: 프로세스 수 증가 → 프로세스당 할당 프레임 감소 → 페이지 폴트 폭발적 증가
1
프로세스 수 ↑ → 프레임 수 ↓ → 페이지 폴트 ↑ → CPU 이용률 ↓ → 스래싱

워킹셋(Working Set)

  • 정의: 프로세스가 최근 일정 시간(윈도우 Δ) 동안 참조한 페이지들의 집합
  • 예시 (Δ = 5):
1
최근 참조 페이지: {1, 2, 3, 2, 1} → 워킹셋 = {1, 2, 3}

스래싱 방지 원리

  • 각 프로세스의 워킹셋 크기만큼 프레임을 보장
  • 보장할 프레임이 부족하면 → 프로세스를 일시 중단하고 해당 프레임을 다른 프로세스에 양보
  • “조금씩 나눠줘서 다 폴트 나는 것”보다 “충분히 주고 나머지는 잠시 대기” 전략
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.