250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- exclusive lock
- SQL프로그래밍
- eager
- CHECK OPTION
- 즉시로딩
- 비관적락
- querydsl
- 유니크제약조건
- 힙
- execute
- BOJ
- 스프링 폼
- 스토어드 프로시저
- 이진탐색
- 낙관적락
- 연결리스트
- 지연로딩
- 동적sql
- PS
- 데코레이터
- 다대일
- shared lock
- 연관관계
- FetchType
- 일대다
- fetch
- 다대다
- 백트래킹
- JPQL
- dfs
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
스레싱(Thrashing) 을 예방하기 위한 워킹 셋(Working set) 본문
728x90
# 스레싱(Thrashing)
스레싱(Thrashing)은 운영체제에서 프로세스들이 빈번하게 페이지 교체를 발생시켜 실제 유용한 작업을 수행하지 못하고 대부분의 시간을 페이지 교체에 소비하는 현상이다.
이러한 상황이 발생하면 시스템 성능이 급격히 저하된다.
이를 예방하기 위한 개념 중 하나가 워킹 셋(Working Set) 이다.
# 워킹 셋 (Working Set)
워킹 셋은 특정 시간 동안 프로세스가 자주 참조하는 페이지들의 집합을 말한다.
워킹 셋을 이용한 메모리 관리 전략은 프로세스의 워킹 셋 크기를 모니터링하고, 시스템의 전체 메모리 사용량을 제어하여 스레싱을 예방하는 데 목적이 있다.
기본 개념
- 워킹 셋 윈도우 (Working Set Window): 최근 일정 시간 동안(또는 최근 일정 수의 페이지 참조 동안) 참조된 페이지들의 집합을 정의하는 시간 구간 또는 참조 수이다. 이를 통해 프로세스가 당장 필요로 하는 페이지들을 파악한다.
- 워킹 셋 크기 (Working Set Size): 워킹 셋 윈도우 내에 포함된 페이지들의 수를 말한다. 각 프로세스는 시점에 따라 서로 다른 워킹 셋 크기를 가질 수 있다.
작동 원리
- 페이지 참조 추적: 운영체제는 각 프로세스의 페이지 참조 패턴을 모니터링하여 워킹 셋 윈도우 내에서 참조된 페이지를 기록한다.
- 워킹 셋 계산: 최근 일정 시간(또는 일정 수의 페이지 참조) 내에 참조된 페이지를 모아 워킹 셋을 구성한다.
- 메모리 할당 조정: 운영체제는 각 프로세스에 대해 워킹 셋 크기를 기반으로 메모리를 할당한다. 프로세스의 워킹 셋 크기가 커지면 더 많은 메모리를 할당하고, 작아지면 메모리 할당을 줄인다.
- 스레싱 예방: 워킹 셋을 통해 프로세스가 당장 필요로 하는 페이지들이 메모리에 상주하도록 보장함으로써 페이지 폴트를 줄이고, 스레싱을 예방한다.
예시
- 프로세스 A의 워킹 셋 윈도우가 1,000개의 참조로 설정되어 있고, 최근 1,000번의 페이지 참조 중 50개의 페이지가 참조되었다면, 프로세스 A의 워킹 셋 크기는 50이다.
- 프로세스 B의 워킹 셋 윈도우가 1,000개의 참조로 설정되어 있고, 최근 1,000번의 페이지 참조 중 200개의 페이지가 참조되었다면, 프로세스 B의 워킹 셋 크기는 200이다.
운영체제는 이러한 정보를 바탕으로 프로세스 A에는 50개의 페이지 프레임을, 프로세스 B에는 200개의 페이지 프레임을 할당하여 스레싱을 예방한다.
워킹 셋 관리의 장점
- 스레싱 방지: 워킹 셋을 통해 프로세스가 실제로 필요로 하는 페이지들이 메모리에 상주하도록 보장함으로써 스레싱을 예방한다.
- 효율적인 메모리 사용: 워킹 셋 크기에 기반한 메모리 할당을 통해 메모리 자원을 효율적으로 사용할 수 있다.
- 동적 조정: 프로세스의 워킹 셋 크기는 시간에 따라 변할 수 있으므로, 운영체제는 동적으로 메모리 할당을 조정하여 변화하는 요구에 대응할 수 있다.
요약
워킹 셋(Working Set)은 특정 시간 동안 프로세스가 자주 참조하는 페이지들의 집합을 말하며, 이를 이용하여 스레싱을 예방하고 메모리 사용을 최적화할 수 있다. 워킹 셋 개념을 통해 운영체제는 프로세스가 실제로 필요로 하는 페이지들을 메모리에 유지하고, 동적으로 메모리 자원을 할당하여 시스템 성능을 향상시킨다.
'OS' 카테고리의 다른 글
뮤텍스와 세마포어 사용 사례 (0) | 2024.07.02 |
---|