반응형
Ⅰ. 실행 시간보다 페이지 교체 시간이 많아지는 스레싱 개요
가. 스레싱의 정의
- Page Fault가 연속적으로 발생하여 프로세스 수행시간보다 페이지 교체 시간이 더 큰 상태
나. 스레싱의 결과
개념도 | 설명 |
- 멀티 프로세스 시스템에서 자주 발생 - 시스템 처리율이 낮아지고 페이지 부재가 높아짐 - 메모리 접근 시간 증가, 프로세스 가용성 감소 - 스레싱 방지를 위해 다중 프로그래밍 낮춰야 함 |
- 다중 프로그래밍 정도가 높아짐에 따라 프로세서 이용률이 향상되지만 임계치 도달후 낮아짐
Ⅱ. 스레싱의 발생 원인
가. 스레싱의 발생 과정
나. 스레싱 주요 원인
구분 | 주요 원인 | 설명 |
부적절한 페이지 교체 정책 |
- Belady's Anomaly - Page Miss 증가 |
- 페이지 교체 정책 실패 - page 추가 hit rate 감소 |
- Small Page Size - 다수 PAge 사용 |
- paging overhead 증가 - paging 시간 > 처리 시간 |
|
시스템 리소스 부족 |
- 작은 L2 캐시 - 낮은 메모리 용량 |
- page miss ratio 증가 - 빈번한 page rault 발생 |
- Memory Clock - Single Core |
- single channel memory - 저성능 CPU/Core 사용 |
|
프로그램 메모리 관리 실패 |
- 과도한 thread() - 무분별한 fork() |
- 과도한 프로세스 발생 - Instance, Method Load |
- exit(0) 미사용 - G/C 미수행 |
- 메모리 누수/관리 실패 - Zombie, 메모리 점유 |
- 스레싱의 완벽 예방은 어려우므로 Working Set Model, Page Fault Frequency 통해 발생 최소화
Ⅲ. 스레싱 예방 방법
가. 지역성 활용, Working Set Model
구분 | 설명 | |
개념 | 프로세스가 많이 참조하는 페이지 집합을 메모리 공간에 계속 상주시켜 빈번한 페이지 교체현상을 줄이는 방법 | |
특징 | - 과도기, 안정기가 주기적 반복 | |
장점 | - 멀티 프로그래밍 정보 높임 - CPU 활용률 최적화 |
|
단점 | - Working Set 추적 관리 복잡 - Window 사이즈 설정 모호함 - 참조 페이지 Queue 유지관리 복잡 |
나. 직접 엑세스 방식, Page Fault Frequency
구분 | 설명 |
개념 | 현재 페이지 부재와 이전 페이지 부재 사이 시간 관찰하여 최소 시간보다 크면 그 사이 호출되지 않았던 페이지 모두 제거 |
특징 | - 페이지 부재 비율 높음 |
장점 | - 페이지 부재 발생 시에만 실행 - 직접 페이지 부재율 조절 가능 |
단점 | - 프로세스 중지 과정 발생 - 페이지 참조 신규 지역성 이동 |
Ⅳ. 효과적인 스레싱 발생 최소화를 위한 예방 기법
구분 | 예방 기법 | 세부 기법 |
운영체제 설정 측면 |
- Page Size 결정 - 2^n byte Page |
- 페이지 교체 오버헤드 방지 - 페이지 단위, TLB 범위 고려 |
- 역 페이지 테이블 (Inverted Page Table) |
- 페이지 테이블 위한 메모리 공간 축소 기법 | |
프로그램 설계 측면 |
- Locality 고려 - Loop, Array |
- 개발 언어 특성 고려 - method 호출 프로그램 구조 |
- 페이지 Lock - 입출력 방지 |
- 페이지 Locking 교체 방지 - 사용자 공간으로 I/O 차단 |
반응형