쓰레싱에 대한 개념, 발생 원인, 이를 방지하기 위한 메모리 관리 전략에 대해 정리하고자 한다.
1. 개념
- 운영체제에서 과도한 페이지 교체가 발생하면서, 실제 작업은 거의 수행되지 않고 대부분의 시간과 자원이 페이지 교체에 소비되는 현상으로, 주로 가상 메모리를 사용하는 시스템에서 발생한다.
2. 발생 원인
- 과도한 다중 프로그래밍
> 너무 많은 프로세스를 동시에 실행시키면 각 프로세스가 필요한 만큼의 메모리 확보를 하지 못한다.
> 그 결과 페이지 결함이 빈번하게 발생하고, 디스크 I/O 가 증가하면서 성능이 저하된다.
- Working Set 크기보다 적은 프레임 할당
> 각 프로세스는 일정 시간 동안 자주 참조하는 Working Set 이 있는데, 이 크기보다 적은 메모리를 할당 받으면 계속해서 페이지 교체가 발생한다.
- 지역성(Locality) 의 위반
> 프로그램은 일반적으로 특정 시간 동안 제한된 메모리 영역에만 접근하는 경향이 있는데, 이를 무시한 스케줄링이나 메모리 할당으로 인해 발생할 수 있다.
3. 메모리 관리 전략
- Working Set Model 적용
> 프로세스마다 현재 시간 동안 실제로 자주 사용하는 페이지 수를 추적하고, 이 Set 을 기준으로 프레임을 할당하여 필요한 만큼의 메모리를 보장한다.
- 페이지 결함률(Page Fault Rate) 모니터링
> 각 프로세스의 페이지 결함률을 측정하여, 일정 임계값 이상이면 프레임을 추가로 할당하고 너무 낮으면 일부 회수함으로써 시스템 전체 자원을 효율적으로 분배한다.
- 다중 프로그래밍 수준 조절
> 시스템에서 동시에 실행되는 프로세스 수를 제한하여, 각 프로세스에 충분한 메모리를 할당하도록 조정한다.
- 프레임 할당 전략 개선
> 고정 할당 방식 보다는 동적 할당 방식을 통해 시스템 상황에 맞게 유연하게 메모리를 할당한다.
- 스왑 공간 최적화
> 디스크 I/O 속도를 향상시키거나, SSD 와 같은 빠른 저장 매체를 사용하여 페이지 교체 시 성능 저하를 줄인다.
'IT > CS' 카테고리의 다른 글
[기타] SEO(Search Engine Optimization, 검색 엔진 최적화)란? (0) | 2025.04.20 |
---|---|
[CS] 객체 지향 설계 5가지 원칙 - SOLID (0) | 2025.03.16 |
[CS] CRDT (0) | 2024.12.11 |
[CS] .so 파일과 .a 파일 비교 (1) | 2024.12.11 |
[CS] 사용자 패스워드 전송/보관 방법 (1) | 2024.12.11 |