스래싱(Thrashing) 원인과 해결, CPU 이용률이 갑자기 꺾이는 이유와 워킹셋·PFF 비교

서버에 작업을 하나 더 얹었을 뿐인데 갑자기 전체가 느려지고, 정작 CPU 사용률은 바닥으로 떨어지는 경우가 있습니다. 운영체제 메모리 관리에서 말하는 스래싱(Thrashing)입니다. 정보처리기사 필기의 운영체제 과목에 자주 나오고, 정보관리기술사·컴퓨터시스템응용기술사에서는 원인과 해결 기법을 엮어 서술하라는 형태로 다뤄지는 단골 토픽입니다.

이 글은 기술사 답안 구성(정의, 메커니즘, 원인, 해결 방안 비교, 적용 시 고려사항)을 따라 정리했습니다.

스래싱이란 실행보다 페이지 교체에 더 많은 시간을 쓰는 상태

정의: 가상 메모리 환경에서 프로세스에 할당된 프레임이 그 프로세스가 당장 쓰는 페이지 수보다 적어 페이지 부재(Page Fault)가 연쇄적으로 일어나고, 그 결과 실제 명령 실행보다 페이지 교체(디스크 입출력)에 더 많은 시간을 쓰는 현상입니다.

  • 핵심 키워드: 페이지 부재율 급증, CPU 이용률 급감, 지역성(Locality) 불충족
  • 관련 개념: 다중 프로그래밍 정도(Degree of Multiprogramming), 프레임 할당, 페이지 교체 알고리즘

CPU 이용률이 오르다가 한순간에 꺾이는 메커니즘

다중 프로그래밍 정도에 따른 CPU 이용률 변화와 스래싱 시작점 개념도
개념도. 실제 곡선의 모양과 꺾이는 지점은 시스템마다 다릅니다.

동시에 올리는 프로세스 수를 늘리면 처음에는 CPU가 쉬는 시간이 줄어 이용률이 오릅니다. 그런데 어느 지점을 넘으면 각 프로세스가 받는 프레임이 줄어들고, 페이지 부재가 연달아 터지기 시작합니다. 이때 벌어지는 악순환이 시험에서 자주 묻는 부분입니다.

  1. 프레임이 부족해 페이지 부재가 늘어난다.
  2. 프로세스들이 페이징 장치(디스크) 대기열에 몰리고 CPU는 놀게 된다.
  3. 운영체제는 CPU 이용률이 낮다고 판단해 프로세스를 더 올린다.
  4. 프로세스당 프레임이 더 줄고 페이지 부재가 더 늘어난다.

전역 교체(Global Replacement)를 쓰면 한 프로세스가 다른 프로세스의 프레임을 빼앗아 오기 때문에, 문제가 시스템 전체로 번지기 쉽습니다.

원인은 결국 지역성을 담을 만큼 프레임을 주지 못한 것

구분 원인 설명
정책 과도한 다중 프로그래밍 메모리 용량에 비해 너무 많은 프로세스를 동시에 적재
정책 전역 페이지 교체 한 프로세스의 부재가 다른 프로세스의 프레임을 잠식
프로그램 지역성이 낮은 접근 패턴 배열을 열 우선으로 순회하는 등 참조가 넓게 흩어짐
자원 물리 메모리 부족 작업 집합의 합이 가용 프레임 수를 넘어섬

워킹셋 모델은 최근 Δ번의 참조로 필요한 페이지를 추정한다

워킹셋(Working Set)은 Denning이 제안한 모델로, 시각 t 직전 Δ번의 페이지 참조에 등장한 페이지들의 집합을 그 프로세스가 지금 필요로 하는 페이지로 봅니다. Δ를 워킹셋 윈도우라고 부릅니다.

페이지 참조열에서 윈도우 10일 때 시점별 워킹셋을 구한 예시
참조열 예시. 같은 윈도우 크기에서도 t1에는 5개, t2에는 2개 페이지가 필요합니다.

그림에서 t1 직전 10번 참조에는 1, 2, 5, 6, 7이 나오므로 워킹셋 크기(WSS)는 5입니다. t2 직전 10번은 3과 4만 반복되므로 WSS는 2입니다. 운영체제는 모든 프로세스의 WSS 합(D)을 가용 프레임 수(m)와 비교합니다.

  • D ≤ m 이면 여유가 있으므로 새 프로세스를 올릴 수 있다.
  • D > m 이면 스래싱 위험이 있으므로 일부 프로세스를 일시 중지(스왑 아웃)해 프레임을 돌려준다.

Δ가 너무 작으면 지역성 전체를 담지 못하고, 너무 크면 여러 지역성이 겹쳐 프레임을 낭비합니다. 이 트레이드오프가 서술형 단골 포인트입니다.

PFF는 페이지 부재 빈도를 직접 보고 프레임을 조절한다

PFF(Page Fault Frequency) 방식은 워킹셋을 계산하는 대신 프로세스별 페이지 부재율에 상한과 하한을 둡니다. 부재율이 상한을 넘으면 프레임을 더 주고, 하한보다 낮으면 프레임을 회수합니다. 더 줄 프레임이 없으면 프로세스를 중지합니다. 워킹셋보다 구현 부담이 적고 스래싱을 직접 겨냥한다는 점이 장점입니다.

해결 기법을 한 표로 비교하면

기법 원리 장점 한계
워킹셋 모델 최근 Δ 참조의 페이지 집합만큼 프레임 보장 지역성을 이론적으로 반영 Δ 선정이 어렵고 추적 비용이 큼
PFF 부재율 상·하한으로 프레임 증감 스래싱을 직접 제어, 구현이 단순 임계값 설정에 따라 반응이 늦거나 과민
지역 교체 자기 프레임 안에서만 교체 스래싱 전파 차단 해당 프로세스 자체의 스래싱은 못 막음
부하 제어 다중 프로그래밍 정도를 낮춤(스왑 아웃) 즉각적인 효과 처리량 감소, 어떤 프로세스를 내릴지 기준 필요
자원·코드 개선 메모리 증설, 지역성 높은 코드 작성 근본 해결 비용과 시간 소요

답안을 쓸 때 놓치기 쉬운 고려사항

  • 악순환 고리를 반드시 그려 넣는다. CPU 이용률 저하를 보고 프로세스를 더 올리는 운영체제의 판단이 핵심입니다.
  • 워킹셋은 이론, PFF는 실용이라는 대비 구도로 정리하면 비교형 문항에 강합니다.
  • 지역 교체만으로는 부족하다는 한계를 같이 적어야 감점이 없습니다.
  • 실무 관점에서는 컨테이너·가상머신의 메모리 과다 할당(Overcommit) 상황에서 같은 현상이 나타난다는 점을 연결하면 답안의 깊이가 생깁니다.

시험 직전 한 줄 요약

스래싱은 프레임 부족으로 페이지 부재가 폭증해 CPU 이용률이 급락하는 현상이고, 원인은 과도한 다중 프로그래밍과 지역성 미충족입니다. 해결은 워킹셋(D와 m 비교), PFF(부재율 상·하한), 지역 교체, 부하 제어 네 가지로 기억하면 됩니다.

이 글은 학습용 정리이며 실제 시험 문항과 다를 수 있습니다. 출제 기준과 범위는 한국산업인력공단 큐넷 공지를 확인하세요. 그림은 이해를 돕기 위한 개념도이며 실측 데이터가 아닙니다.

Leave a Comment