컴퓨터 과학에서는 뒹굴다 메모리에 보관할 주 메모리가 부족하여 동일한 페이지를 반복적으로 로드할 때 가상 메모리(또는 페이징) 시스템의 성능이 저하되는 현상입니다. 구성 및 알고리즘에 따라 시스템의 실제 처리량은 몇 배나 저하될 수 있습니다.
컴퓨터 과학에서는 대패 컴퓨터의 가상 메모리 리소스가 과도하게 사용되어 지속적인 페이징 및 페이지 오류 상태가 발생하여 대부분의 응용 프로그램 수준 처리가 금지될 때 발생합니다. 컴퓨터의 성능이 저하되거나 붕괴되는 원인이 됩니다. 사용자가 실행 중인 일부 응용 프로그램을 닫거나 활성 프로세스가 추가 가상 메모리 리소스를 확보할 때까지 상황은 무한정 계속될 수 있습니다.
스래싱에 대해 더 명확하게 알려면 먼저 페이지 폴트와 스와핑에 대해 알아야 합니다.
대패 페이지 오류 및 스와핑이 더 높은 비율로 매우 자주 발생하고 운영 체제가 이러한 페이지를 스와핑하는 데 더 많은 시간을 소비해야 하는 경우입니다. 운영 체제에서 이러한 상태를 스래싱(thrashing)이라고 합니다. 스래싱으로 인해 CPU 사용률이 줄어들거나 무시할 수 있을 정도가 됩니다.
관련된 기본 개념은 프로세스에 너무 적은 프레임이 할당되면 페이지 오류가 너무 많고 빈번하게 발생한다는 것입니다. 결과적으로 CPU는 귀중한 작업을 수행하지 않으며 CPU 사용률은 급격히 떨어집니다.
그런 다음 장기 스케줄러는 더 많은 프로세스를 메모리에 로드하여 다중 프로그래밍 수준을 높여 CPU 사용률을 향상시키려고 합니다. 불행하게도 이로 인해 CPU 사용률이 더욱 감소하고 페이지 오류가 증가한 후 스래싱(thrashing)이라고 하는 다중 프로그래밍 정도가 증가하는 연쇄 반응이 발생하게 됩니다.
스래싱 중 알고리즘
스래싱이 시작될 때마다 운영 체제는 전역 페이지 교체 알고리즘이나 로컬 페이지 교체 알고리즘을 적용하려고 시도합니다.
1. 전역 페이지 교체
전역 페이지 교체는 모든 페이지를 가져올 수 있으므로 스래싱이 발견될 때마다 더 많은 페이지를 가져오려고 시도합니다. 그러나 실제로 일어날 일은 어떤 프로세스도 충분한 프레임을 얻지 못하고 결과적으로 스래싱이 점점 더 증가한다는 것입니다. 따라서 스래싱이 발생할 경우 전역 페이지 교체 알고리즘은 적합하지 않습니다.
2. 로컬 페이지 교체
전역 페이지 교체 알고리즘과 달리 로컬 페이지 교체는 해당 프로세스에만 속한 페이지를 선택합니다. 따라서 스래싱을 줄일 수 있는 기회가 있습니다. 그러나 로컬 페이지 교체를 사용하면 많은 단점이 있다는 것이 입증되었습니다. 따라서 로컬 페이지 교체는 스래싱 시나리오에서 전역 페이지 교체의 대안일 뿐입니다.
스래싱의 원인
프로그램이나 작업 부하로 인해 스래싱이 발생하여 다음과 같은 심각한 성능 문제가 발생할 수 있습니다.
- CPU 사용률이 너무 낮으면 새로운 시스템을 도입하여 다중 프로그래밍 수준을 높입니다. 전역 페이지 교체 알고리즘이 사용됩니다. CPU 스케줄러는 CPU 사용률이 감소하는 것을 확인하고 다중 프로그래밍 정도를 높입니다.
- CPU 사용률은 다중 프로그래밍 정도에 따라 표시됩니다.
- 다중 프로그래밍 정도가 증가할수록 CPU 사용률도 증가합니다.
- 다중 프로그래밍의 정도가 더 높아지면 스래싱이 시작되고 CPU 사용률이 급격히 떨어집니다.
- 따라서 이 시점에서 CPU 사용률을 높이고 스래싱을 중지하려면 다중 프로그래밍 정도를 줄여야 합니다.
스래싱을 제거하는 방법
스래싱은 하드 드라이브 상태와 시스템 성능에 부정적인 영향을 미칩니다. 따라서 이를 방지하기 위해 몇 가지 조치를 취하는 것이 필요합니다. 스래싱 문제를 해결하려면 다음과 같은 방법이 있습니다.
스래싱을 방지하는 기술
로컬 페이지 교체는 글로벌 페이지 교체보다 좋지만 로컬 페이지 교체에는 단점이 많아 도움이 되지 않을 때도 있습니다. 따라서 스래싱을 처리하는 데 사용되는 몇 가지 다른 기술은 다음과 같습니다.
1. 지역성 모델
지역은 적극적으로 함께 사용되는 페이지 집합입니다. 지역성 모델은 프로세스가 실행될 때 한 지역에서 다른 지역으로 이동한다고 말합니다. 따라서 프로그램은 일반적으로 중복될 수 있는 여러 다른 지역으로 구성됩니다.
예를 들어, 함수가 호출되면 함수 호출 명령, 지역 및 전역 변수 등에 대한 메모리 참조가 이루어지는 새로운 지역성을 정의합니다. 마찬가지로 함수가 종료되면 프로세스는 이 지역성을 떠납니다.
2. 작업 세트 모델
이 모델은 위에서 언급한 Locality Model의 개념을 기반으로 합니다.
기본 원칙에 따르면 현재 위치를 수용하기 위해 프로세스에 충분한 프레임을 할당하면 새로운 위치로 이동할 때마다 오류만 발생합니다. 그러나 할당된 프레임이 현재 위치의 크기보다 작으면 프로세스가 스래싱됩니다.
이 모델에 따르면 매개변수 A를 기반으로 작업 세트는 가장 최근의 'A' 페이지 참조에 있는 페이지 세트로 정의됩니다. 따라서 적극적으로 사용되는 모든 페이지는 항상 작업 세트의 일부가 됩니다.
배우 제나 아만
작업 세트의 정확도는 매개변수 A의 값에 따라 달라집니다. A가 너무 크면 작업 세트가 겹칠 수 있습니다. 반면, A 값이 작을 경우 지역이 완전히 포함되지 않을 수 있습니다.
D가 프레임과 WSS에 대한 총 수요라면나프로세스 i의 작업 세트 크기입니다.
D = ⅀ WSS나
이제 'm'이 메모리에서 사용 가능한 프레임 수인 경우 두 가지 가능성이 있습니다.
- D>m, 즉 총 수요가 프레임 수를 초과하면 일부 프로세스가 충분한 프레임을 얻지 못해 스래싱이 발생합니다.
- 디<=m, then there would be no thrashing.< li> =m,>
추가 프레임이 충분하면 더 많은 프로세스를 메모리에 로드할 수 있습니다. 반면, 작업 세트 크기의 합이 프레임의 가용성을 초과하는 경우 일부 프로세스는 일시 중단(메모리에서 교체)되어야 합니다.
이 기술은 가능한 최고 수준의 다중 프로그래밍을 보장하면서 스래싱을 방지합니다. 따라서 CPU 활용도를 최적화합니다.
3. 페이지 오류 빈도
스래싱을 처리하는 보다 직접적인 접근 방식은 페이지 오류 빈도 개념을 사용하는 것입니다.
스래싱과 관련된 문제는 높은 페이지 오류율이므로 여기서의 개념은 페이지 오류율을 제어하는 것입니다.
페이지 부재율이 너무 높으면 프로세스에 할당된 프레임이 너무 적다는 것을 나타냅니다. 반대로 페이지 오류율이 낮다는 것은 프로세스에 프레임이 너무 많다는 것을 의미합니다.
다이어그램에 표시된 대로 원하는 페이지 오류율에 상한과 하한을 설정할 수 있습니다.
페이지 부재율이 하한 미만으로 떨어지면 프로세스에서 프레임이 제거될 수 있습니다. 마찬가지로 페이지 부재율이 상한을 초과하면 프로세스에 더 많은 프레임이 할당될 수 있습니다.
즉, 시스템의 그래픽 상태는 주어진 다이어그램에 형성된 직사각형 영역으로 제한되어 유지되어야 합니다.
여유 프레임이 없는 상태에서 페이지 오류율이 높으면 일부 프로세스가 일시 중지되고 해당 프로세스에 할당되어 다른 프로세스에 재할당될 수 있습니다. 일시중단된 프로세스는 나중에 다시 시작할 수 있습니다.