Thrashing, 스레싱
· 3 min read
스레싱의 개념
- 멀티프로세싱 환경에서 빈번한 페이지 교체로 실제 프로세스 실행보다 페이지 교체에 더 많은 시간을 소요하여 프로세스 성능이 낮아지는 이상현상
프로세스 스레싱의 개념도, 원인, 해결방안
프로세스 스레싱의 개념도
- 다중 프로그래밍의 정도가 높아짐에 따라 프로세서 이용률이 향상되지맂 임계치 도달 후 프로세서 이용률이 낮아짐
프로세스 스레싱의 원인
구분 | 원인 | 내용 |
---|---|---|
리소스 부족 | 저사양 CPU | CPU 코어부족, 속도 부족 |
- | 메모리 용량 부족 | 용량 부족으로 인한 가상메모리 사용 증가 |
부적절한 페이지 교체 정책 | 지역성 미고려 | 페이지 교체 정책 효율성 저하 |
- | 페이지 빈도 미고려 | 부적절한 페이지 교체 알고리즘 사용 |
과도한 멀티프로그래밍 | 다중 프로세스 수용 초과 | 과도한 멀티프로그래밍으로 페이지 폴트 |
- | 페이지 교체 수용 추가 | 페이지 수 초과로 인한 페이지 폴트 |
- Working Set Model, Page Fault Frequency 기버을 통해 발생을 최소화하는 것이 최선의 방법
프로세스 스레싱 해결방안
- Working Set: 프로세스가 자주 참조하는 페이지 집합을 메모리에 상주시켜 교체 감소
- Page Fault Frequency: 페이지 부재율의 상한, 하한을 정하여 직접 페이지 부재율을 예측하여 프레임 할당, 프레임 회수하여 페이지 교체 감소
스레싱 발생시 고려사항
- 자주 사용하는 프로세스에 높은 우선순위를 부여하여 중요 작업이 원활히 수행 가능하도록 처리