What I Learned/etc.

[CS] 메모리 관리

rilee 2025. 12. 23. 09:52
728x90

2-1. 가상 메모리

가상 메모리: 물리 메모리 크기보다 큰 주소 공간을 제공하는 메모리 관리 기법

  • 각 프로세스에 독립적인 가상 주소 공간 제공
  • 물리 메모리와의 매핑은 운영체제가 관리
  • 메모리 보호 및 효율적 사용 목적

(1) 스와핑

스와핑: 프로세스 단위로 메모리를 보조 저장장치로 이동시키는 기법

  • 메모리 부족 시 비활성 프로세스 디스크 이동
  • 필요 시 다시 메모리로 적재
  • 컨텍스트 스위칭 비용 증가 요인

(2) 페이지 폴트

페이지 폴트: 접근한 페이지가 물리 메모리에 존재하지 않는 상황

  • 가상 주소 접근 시 발생
  • 디스크에서 해당 페이지 적재
  • 페이지 테이블 갱신 후 명령 재실행

성능 저하 주요 원인


2-2. 스레싱

스레싱: 페이지 교체 작업 과다로 인한 시스템 성능 급락 상태

  • CPU 사용률 급감
  • 실행 시간 대부분을 페이지 교체에 소비

메모리 부족 상태의 대표적 증상

(1) 작업 세트

작업 세트: 일정 시간 동안 실제로 참조되는 페이지 집합

  • 지역성 개념 기반
  • 프로세스 정상 실행에 필요한 최소 페이지 단위

작업 세트 미충족 시 스레싱 발생 가능성 증가

(2) PFF

PFF(Page Fault Frequency): 페이지 폴트 빈도 기반 메모리 할당 제어 기법

  • 페이지 폴트 빈도 증가 시 프레임 추가
  • 페이지 폴트 빈도 감소 시 프레임 회수

스레싱 방지 목적의 동적 조절 방식


2-3. 메모리 할당

메모리 할당: 프로세스에 물리 메모리를 배정하는 방식

(1) 연속 할당

연속 할당: 하나의 연속된 물리 메모리 영역을 프로세스에 할당하는 방식

고정 분할 방식

  • 메모리를 고정 크기로 분할
  • 구현 단순
  • 내부 단편화 발생

가변 분할 방식

  • 프로세스 크기에 맞게 동적 분할
  • 외부 단편화 발생
  • 압축 필요 가능성

(2) 불연속 할당

불연속 할당: 프로세스를 분산된 메모리 영역에 나누어 할당하는 방식

페이징

  • 고정 크기 페이지 단위 분할
  • 내부 단편화 발생 가능
  • 외부 단편화 없음

세그멘테이션

  • 논리적 의미 단위 분할
  • 외부 단편화 발생
  • 구조적 이해 용이

페이지드 세그멘테이션

  • 세그먼트 내부를 페이지 단위로 관리
  • 외부 단편화 완화
  • 주소 변환 구조 복잡

2-4. 페이지 교체 알고리즘

페이지 교체 알고리즘: 페이지 폴트 발생 시 교체 대상 페이지 선택 정책

(1) 오프라인 알고리즘

오프라인 알고리즘: 미래 참조를 알고 있다고 가정한 최적 알고리즘

  • 가장 늦게 사용될 페이지 교체
  • 실제 구현 불가
  • 성능 비교 기준

(2) FIFO

FIFO: 가장 먼저 적재된 페이지 교체 방식

  • 구현 단순
  • 참조 패턴 미반영
  • 벨라디의 역설 발생 가능

(3) LRU

LRU: 가장 오래 사용되지 않은 페이지 교체 방식

  • 지역성 기반
  • 성능 우수
  • 구현 비용 부담

NUR

  • LRU 근사 기법
  • 참조 비트·수정 비트 활용

(4) LFU

LFU: 참조 횟수가 가장 적은 페이지 교체 방식

  • 장기 사용 빈도 반영
  • 오래된 참조 기록 문제
728x90