Post

[Thrasing] 스레싱 정리

스레싱

스레싱(Thrashing)

프로세스가 집중적으로 사용하는 페이지들의 집합이 메모리에 한꺼번에 적재되지 못하여 페이지 부재율(page fault)가 많이 발생하게 되고 CPU 이용률이 급격히 떨어지는 현상

사용하는 프로세스가 많아질 때 어느 한계점 까지는 cpu이용률이 증가하다가 한계점 이상부터는 cpu이용률이 떨어지게 되는데 이 때 사용량이 떨어지는 이유 중 하나가 스레싱 때문이다.

yofo

다중 프로그래밍의 정도(MPD: Multi-Programming Degree) : 메모리에 동시에 올라가 있는 프로세스의 수

스레싱 발생 원인

스레싱이 발생하는 이유는 프로세스를 처리하는 시간보다 메모리에 적재되지 못한 페이지로 인하여 페이지 교체에 드는 시간이 증가하게되고 그로 인해 CPU이용률이 떨어지게 된다.

Alt text

운영체제는 cpu이용률이 낮으면 메모리에 동시에 올라가 있는 프로세스의 수인 MPD를 높이게 되는데 동시에 실행하는 프로세스가 많아질 수록 각 프로세스에 할당된 메모리 페이지 프레임들은 더욱 작아지게 된다. 너무 적은 페이지 프레임을 할당받은 프로세스들은 페이지 부재가 증가하게되어 swapping이 증가하게 되고 결국 cpu의 이용률이 더욱 떨어지는 악순환이 생기게 된다.

스레싱 발생 방지 알고리즘


MPD를 적절히 조절하여 cpu이용률을 높이면서 스레싱이 발생하는 것을 방지하는 방법으로 워킹셋 알고리즘페이지 부재 빈도 알고리즘이 있습니다.

워킹셋 알고리즘

프로세스는 일정 시간 동안 집중적으로 특정 주소 영역을 참조하는 경향이 있는데 이를 지역성 집합이라고 합니다. 워킹셋 알고리즘은 지역성 집합이 메모리에 동시에 올라갈 수 있도록 보장하는 메모리 관리 알고리즘입니다.

Alt text

워킹셋은 한까번에 메모리에 올라가야 하는 페이지들의 집합입니다. 워킹셋 알고리즘은 프로세스의 워킹셋을 구성하는 페이지들이 한꺼번에 올라갈 수 있을 메모리 공간이 있을 때만 동작합니다. 그렇지 않으면 기존 메모리에 존재하는 페이지를 디스크로 스왑 아웃 시켜 공간을 확보합니다. 이러한 방법으로 MPD를 조절하고 스레싱을 방지하게 됩니다.

페이지 부재 빈도 알고리즘

프로세스가 필요로 하는 프레임의 양을 동적으로 결정하는 방법이다. 이 방식은 페이지 부재 횟수를 기록하여 프로세스마다 페이지 부재 비율을 계산하는 것이다.

페이지 부재 빈도에서는 페이지 부재 비율의 상한선과 하한선을 결정한다. 만약 페이지 부재 비율이 상한선을 초과하면 할당한 프레임이 적다는 것이므로 프레임 할당량을 늘려준다.

반대로 페이지 부재 비율이 하한선보다 낮다면 할당한 프레임을 어느정도 회수한다.

Alt text

도움받은 블로그

skyb님 블로그

This post is licensed under CC BY 4.0 by the author.