Search

스레싱과 워킹셋

class
운영체제
상태
완료
날짜

워킹셋

워킹셋은 일정 시간 동안 특정 프로세스가 자주 참조하는 페이지들의 집합을 말합니다. 이 개념은 페이지 교체 알고리즘의 성능을 최적화하고, 스레싱을 방지하기 위해 도입되었습니다.
워킹셋의 특징
1.
시간 구간 : 워킹셋은 일정 시간 구간 동안 자주 사용되는 페이지들을 나타내며, 이 시간 구간은 주로 Δ로 표현됩니다.
2.
동적 특성 : 프로세스의 실행 상태에 따라 워킹셋은 동적으로 변합니다.
3.
프로세스 메모리 사용 패턴: 워킹셋의 크기는 프로세스의 메모리 사용 패턴에 따라 다르며, 이를 통해 시스템은 프로세스가 필요한 메모리를 보다 효율적으로 할당할 수 있습니다.
워킹셋 모델의 장점
1.
스레싱 방지 : 워킹셋 모델을 사용하면 시스템이 필요한 최소한의 페이지를 항상 메모리에 유지하여 스레싱을 방지할 수 있습니다.
2.
효율적 메모리 사용 : 시스템이 각 프로세스의 실제 메모리 요구를 보다 정확히 파악하고, 이를 바탕으로 메모리를 할당할 수 있습니다.
워킹셋은 위에서 언급했듯이 동적으로 변할 수 있습니다. 또한, 메모리 패턴과 메모리 크기에 따라 워킹셋의 크기도 변하므로, 워킹셋이 동적으로 변하는 자주 사용하는 페이지들의 집합이라는 개념만 이해하시면 좋을 것 입니다.

스레싱

스레싱은 시스템의 가상 메모리 관리에서 발생하는 현상으로, 페이지 폴트가 너무 자주 발생하여 시스템 성능이 급격히 저하되는 상태를 말합니다. 이 현상은 시스템이 주 메모리와 보조 저장 장치간에 페이지를 빈번하게 교체해야 할 때 발생합니다.
스레싱의 원인
1.
메모리 부족 : 프로세스가 필요한 메모리보다 시스템의 물리적 메모리가 부족할 때 발생합니다.
사실, 스레싱을 줄이기 위한 가장 간단하고 확실한 해결책은 메모리를 늘리는 것입니다.
1.
과도한 멀티태스킹 : 동시에 실행되는 프로세스가 많아져 각 프로세스가 충분한 메모리를 할당받지 못할 때 발생합니다.
2.
부적절한 페이지 교체 정책 : 적절하지 않은 페이지 교체 알고리즘이 사용될 때 발생할 수 있습니다.
스레싱이 발생하면 CPU는 실제 작업을 처리하는 시간보다 페이지를 교체하는 데 더 많은 시간을 소모하게 됩니다. 이로 인해 시스템 전체 성능이 크게 저하됩니다.

워킹셋 크기의 중요성

워킹셋이 너무 큰 경우
1.
메모리 과부하 : 워킹셋이 너무 크면 시스템의 물리적 메모리가 빠르게 소모됩니다.
2.
페이지 폴트 증가 : 시스템이 물리적 메모리보다 더 많은 페이지를 유지하려고 할 때, 필요 없는 페이지를 자주 교체해야 하므로 페이지 폴트가 증가합니다.
3.
스레싱 발생 : 물리적 메모리가 부족해지면, 시스템은 페이지를 빈번하게 교체하게 되고, 이로 인해 스레싱이 발생합니다.
워킹셋이 너무 작은 경우
1.
필요한 페이지 부족 : 워킹셋이 너무 작으면 프로세스가 자주 참조하는 페이지를 충분히 포함할 수 없습니다. 이는 필요한 페이지가 메모리에 존재하지 않아 페이지 폴트가 발생할 가능성을 높입니다.
2.
잦은 페이지 교체 : 필요한 페이지가 자주 메모리에서 빠져나가고, 다시 참조될 때마다 페이지 폴트가 발생하여, 페이지 교체가 빈번해집니다.
3.
스레싱 발생 : 페이지 교체가 빈번하게 일어나면 시스템이 스레싱 상태에 빠질 수 있습니다. 이는 워킹셋이 너무 커서 발생하는 문제와 동일하게, CPU가 페이지 교체에 많은 시간을 소비하게 만듭니다.

최적의 워킹셋 크기의 중요성

동적 조정 : 시스템은 각 프로세스의 워킹셋을 동적으로 조정하여, 필요에 따라 메모리를 할당합니다.
모니터링 및 튜닝 : 시스템은 워킹셋 크기를 모니터링하고, 페이지 폴트율을 기반으로 워킹셋 크기를 조정하여 최적의 성능을 유지합니다.
메모리 자원 관리 : 메모리 자원을 효율적으로 관리하여 각 프로세스가 필요한 메모리를 적절히 할당받을 수 있도록 합니다.