흰 스타렉스에서 내가 내리지

스레싱(Thrashing) 을 예방하기 위한 워킹 셋(Working set) 본문

OS

스레싱(Thrashing) 을 예방하기 위한 워킹 셋(Working set)

주씨. 2024. 7. 3. 21:51
728x90

# 스레싱(Thrashing)

 

스레싱(Thrashing)은 운영체제에서 프로세스들이 빈번하게 페이지 교체를 발생시켜 실제 유용한 작업을 수행하지 못하고 대부분의 시간을 페이지 교체에 소비하는 현상이다.

이러한 상황이 발생하면 시스템 성능이 급격히 저하된다.

이를 예방하기 위한 개념 중 하나가 워킹 셋(Working Set) 이다.

 

 

# 워킹 셋 (Working Set)

워킹 셋특정 시간 동안 프로세스가 자주 참조하는 페이지들의 집합을 말한다.

워킹 셋을 이용한 메모리 관리 전략은 프로세스의 워킹 셋 크기를 모니터링하고, 시스템의 전체 메모리 사용량을 제어하여 스레싱을 예방하는 데 목적이 있다.

 

기본 개념

  • 워킹 셋 윈도우 (Working Set Window): 최근 일정 시간 동안(또는 최근 일정 수의 페이지 참조 동안) 참조된 페이지들의 집합을 정의하는 시간 구간 또는 참조 수이다. 이를 통해 프로세스가 당장 필요로 하는 페이지들을 파악한다.
  • 워킹 셋 크기 (Working Set Size): 워킹 셋 윈도우 내에 포함된 페이지들의 수를 말한다. 각 프로세스는 시점에 따라 서로 다른 워킹 셋 크기를 가질 수 있다.

작동 원리

  1. 페이지 참조 추적: 운영체제는 각 프로세스의 페이지 참조 패턴을 모니터링하여 워킹 셋 윈도우 내에서 참조된 페이지를 기록한다.
  2. 워킹 셋 계산: 최근 일정 시간(또는 일정 수의 페이지 참조) 내에 참조된 페이지를 모아 워킹 셋을 구성한다.
  3. 메모리 할당 조정: 운영체제는 각 프로세스에 대해 워킹 셋 크기를 기반으로 메모리를 할당한다. 프로세스의 워킹 셋 크기가 커지면 더 많은 메모리를 할당하고, 작아지면 메모리 할당을 줄인다.
  4. 스레싱 예방: 워킹 셋을 통해 프로세스가 당장 필요로 하는 페이지들이 메모리에 상주하도록 보장함으로써 페이지 폴트를 줄이고, 스레싱을 예방한다.

예시

  • 프로세스 A의 워킹 셋 윈도우가 1,000개의 참조로 설정되어 있고, 최근 1,000번의 페이지 참조 중 50개의 페이지가 참조되었다면, 프로세스 A의 워킹 셋 크기는 50이다.
  • 프로세스 B의 워킹 셋 윈도우가 1,000개의 참조로 설정되어 있고, 최근 1,000번의 페이지 참조 중 200개의 페이지가 참조되었다면, 프로세스 B의 워킹 셋 크기는 200이다.

운영체제는 이러한 정보를 바탕으로 프로세스 A에는 50개의 페이지 프레임을, 프로세스 B에는 200개의 페이지 프레임을 할당하여 스레싱을 예방한다.

 

워킹 셋 관리의 장점

  1. 스레싱 방지: 워킹 셋을 통해 프로세스가 실제로 필요로 하는 페이지들이 메모리에 상주하도록 보장함으로써 스레싱을 예방한다.
  2. 효율적인 메모리 사용: 워킹 셋 크기에 기반한 메모리 할당을 통해 메모리 자원을 효율적으로 사용할 수 있다.
  3. 동적 조정: 프로세스의 워킹 셋 크기는 시간에 따라 변할 수 있으므로, 운영체제는 동적으로 메모리 할당을 조정하여 변화하는 요구에 대응할 수 있다.

 

요약

워킹 셋(Working Set)은 특정 시간 동안 프로세스가 자주 참조하는 페이지들의 집합을 말하며, 이를 이용하여 스레싱을 예방하고 메모리 사용을 최적화할 수 있다. 워킹 셋 개념을 통해 운영체제는 프로세스가 실제로 필요로 하는 페이지들을 메모리에 유지하고, 동적으로 메모리 자원을 할당하여 시스템 성능을 향상시킨다.

'OS' 카테고리의 다른 글

뮤텍스와 세마포어 사용 사례  (0) 2024.07.02