4월 4일 -Thrashing

Yullgiii·2024년 4월 8일
0
post-thumbnail

Thrashing이란 무엇인가?

Thrashing은 운영 체제의 멀티태스킹 환경에서 발생하는 현상으로, 프로세스들이 과도하게 많은 메모리를 요구하여 시스템의 대부분의 시간과 자원이 페이지 교체에 사용되고, 실질적인 작업 처리 능력이 급격히 저하되는 상태를 말한다. 프로세스가 요구하는 메모리가 사용 가능한 메모리를 초과할 때, 운영 체제는 활성 페이지를 디스크의 스왑 공간으로 이동시키기 시작한다. 과도한 페이지 교체는 CPU가 실제 작업보다 페이지 교체 작업에 더 많은 시간을 소비하게 하여 시스템의 전체적인 성능을 크게 저하시킨다.

Thrashing 발생 시 완화 방법

Thrashing 문제를 완화하기 위한 방법은 다음과 같다:

  1. 메모리 할당 조정: 멀티 프로그래밍 정도를 조절하여 시스템에 동시에 로드되는 프로세스 수를 제한한다. 이를 통해 각 프로세스에 더 많은 메모리를 할당할 수 있어 페이지 교체의 필요성이 줄어든다.

  2. 스와핑 전략 개선: 메모리 사용량이 많은 프로세스를 일시적으로 디스크로 스왑아웃하여 메모리 부담을 줄인다.

  3. 우선순위 조정: 시스템 자원에 대한 접근 우선순위를 조정해 중요하지 않은 작업보다 중요한 작업에 더 많은 메모리 자원을 할당하도록 한다.

  4. 작업 집합 관리: 작업 집합(window) 기법을 사용해 프로세스가 실제로 사용하는 페이지만 메모리에 유지한다.

  5. 페이지 교체 알고리즘 개선: 보다 효율적인 페이지 교체 알고리즘을 적용해 가장 적게 사용되는 페이지나 최근에 사용되지 않은 페이지부터 교체한다.

  6. 물리적 메모리 확장: 시스템의 물리적 메모리 용량을 증가시키는 것은 가장 직접적인 해결책이 될 수 있다.

Thrashing은 시스템의 성능 저하를 초래하는 심각한 문제이므로, 발생 시 적극적으로 대처하는 것이 중요하다. 위에서 제안된 방법들을 통해 시스템의 메모리 관리 전략을 개선하고 thrashing 현상을 완화할 수 있다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글