Thrashing

개념
기억장치의 페이지 부재가 비정상적으로 많이 발생하여 CPU가 프로그램 처리보다 페이지 교체에 더 많은 시간을 보내 성능히 급격히 줄어드는 현상 멀티 프로세싱 기능을 갖춘 시스템에서 가상 메모리의 페이지 부재(Page Fault)가 너무 많이 발생하여 프로세스 실행보다 페이지 교체에 더 많은 시간을 소모하는 현상

I. Thrashing의 개요
    가. 정의

  • 기억장치의 페이지 부재가 비정상적으로 많이 발생하여 CPU가 프로그램 처리보다 페이지 교체에 더 많은 시간을 보내 성능히 급격히 줄어드는 현상
  • 멀티 프로세싱 기능을 갖춘 시스템에서 가상 메모리의 페이지 부재(Page Fault)가 너무 많이 발생하여 프로세스 실행보다 페이지 교체에 더 많은 시간을 소모하는 현상

 

    나. 원인

리소스 부족

- 낮은 CPU 사양

- 적은 메모리 사이즈 등

부적절한 페이지 교체 정책

- locality 및 페이지 빈도등을 고려하지 않은 경우

- Memory Size가 너무 작은 경우

심한 다중 프로그래밍

- 프로세스 교환시마다 페이지 부재처리 발생

- 수용 가능한 페이지 교체 수 초과 및 수용 가능한 프로세스 수 초과

 

    다. 영향

  • Thrashing 상황에서 프로세스는 실행보다 페이지 교체에 더 많은 시간을 허비
  • System Performance 저하
  • System이 비정상적으로 정지할 수 있음

 

    라. 발견방법

  • Page Fault 조사: 각 프로세스 별 페이지 부재로 발생하는 PFF 검사
  • Swapping 조사: 다중 프로그래밍시 다른 프로세스에 공간을 부여하기 위해 프로세스들을 주기억장치 에서 보조기억장치 또는 그 반대로 옮기는 과정 검사

 

II.  개념도 및 해결방안
     가. 개념도
  

  • \초기에는 멀티 프로그래밍 정도가 높아짐에 따라 CPU 이용률이 향상되지만, 어느 임계치보다 커지면 스래싱 발생

 

    나. 발생과정

  • \CPU 사용 확인, 프로세스 추가, 전역 페이지 교체 알고리즘 이행, 페이지 부재율 상승/CPU 사용율 하락, 새로운 프로세스 추가

III. Working-Set Model
    가. 개념도
 


    나. 개념

  • 특정시간에 실행되는 프로그램에 Locality가 포함되는 페이지들의 집합
  • 프로세스들은 주어진 시간 간격 동안 자신의 페이지들 중 일부를 더 자주 접근하려는 지역성(Locality) 이 있으며, 이를 이용하면 페이지 부재율을 감소시킬 수 있음


    다. 특징

  • 프로그램이 효과적으로 실행되기 위해서는 활동 프로세스의 Working Set이 메모리에 적재되어 있어야 함
  • 매번 참조시마다 Resident Page Set 조정(PFF보다 overhead가 큼)

 

IV. Page-Fault Frequency
    가. 개념도
 


    나. 개념

  • 현재 페이지 부재와 바로 전의 페이지 부재 사이의 시간을 관찰해 지금까지의 최소시간보다 크면 그 사이에 호출되지 않았던 페이지들을 모두 제거하고,
  • 최적시간보다 작다면 들어오려는 페이지를 그 프로세스의 상주 페이지 집합에 첨가하는 방법
  • 페이지 부재율 > 상한: 그 프로세스에게 Frame 추가 할당
  • 페이지 부재율 < 하한: 그 프로세스로부터 Frame 회수


    다. 특징

  • 페이지 부재율의 상한과 하한 설정을 관리
  • Working-Set Model보다 더 직접적으로 페이지 부재율 조절 가능
  • 페이지 부재 발생시에만 Resident Page Set을 조정(WSM보다 overhead 낮음)
  • 페이지 부재 발생시에만 Frame수를 조정하므로, Working-Set Model에 비해 오버헤드가 낮음

 

V. Thrashing 회피를 위한 고려요소 및 WSM,PFF 비교
    가. Thrashing의 회피를 위한 고려요소

  • Pre-Paging: 과도한 페이지 부재를 방지하기 위해 관련된 모든 페이지를 사전에 한꺼번에 메모리에 로드
  • Page Size: 페이지의 크기는 2의 거듭 제곱
  • Inverted Page Table: 페이지 테이블을 위한 메모리 공간 줄이는 기법
  • 프로그램 구조: 프로그램 개발 시 지역성 고려, 개발언어에 따른 특성 고려

 

    나. Working Set Model과 PFF의 비교

구분

WSM

PFF

페이지집합

수정방식

매번 기억장치를 참조한 뒤 수정

페이지 폴트 발생시만 수정

스레싱 조절

Prepaging은 유용하나 조절 어려움

작업집합 추정이 어려움

직접적으로 스레싱을 방지하면서  PFF 측정 및 조절

오버헤드

매우 큼

적음

 

댓글