Trashing & working set

rin12·2021년 4월 10일
0

CSW

목록 보기
12/12

스레싱이란?

스레싱은 페이지 부재가 빈번하게 발생하여 실제 CPU 사용 시간보다 페이지 교체하는 시간이 많아지는 현상을 뜻합니다. 주기억장치의 모든 페이지가 활발히 사용되고 있어서 어떤 페이지가 교체된 후 곧바로 반복적인 페이지 부재가 발생하면서 프로세스의 실행보다 페이징을 위해 더 많은 시간을 소요하는 경우입니다.

페이지 부재란?
page fault (페이지 부재). 메모리에 적재된 페이지 중에 사용 페이지가 없을 때. 빈 페이지가 하나도 없거나 미리 정한 수보다 적을 때 발생

  • 스레싱의 원인

다중 프로그래밍 정도가 높아지면 (병행으로 실행되는 프로세스의 수가 늘어나면) CPU 이용률이 높아지게 됩니다.

CPU 이용률이 최대값에 도달했을 때 다중 프로그래밍 정도가 그 이상으로 커지게 되면서 스레싱이 일어나게 되고 이용률과 성능은 급격히 떨어집니다.



또한 운영체제는 CPU 이용률을 감시하면서 이용률이 너무 낮아지면 새로운 프로세스를 시스템에 더 추가해서 다중 프로그래밍의 정도를 높이기 때문입니다.

스레싱을 해결하는 방법은 각 프로세스가 필요로 하는 최소한의 프레임 갯수를 보장하거나 구역성을 이용하는 방법, 다중 프로그래밍 정도를 낮추는 방법이 있습니다.

주기억 장치 내에 워킹셋을 제대로 유지하는 방법이 다중 프로그래밍을 낮춥니다.

워킹셋이란?

프로세스는 일정 시간 동안 특정 주소를 집중적으로 참조하는 경향이 있습니다.

이러한 집중 참조 페이지들을 동시에 메모리에 올려야 하는 페이지들의 집합을 워킹셋이라고 합니다.

  • 워킹셋 모델 : 지역성을 기반으로 가장 많이 쓰이는 페이지 집합을 메모리 공간에 계속 상주 시켜 스레싱을 줄이는 방법

  • 워킹셋 윈도우 : 주로 델타로 표시하며 고정된 숫자

  • 워킹셋 사이즈 : 각 프로세스 별로 가장 많이 쓰이고 있는 페이지의 갯수

워킹셋 윈도우가 10으로 고정되어 있고 페이지를 10개로 잡으면 그게 WS(t1)이 됩니다.

t1에서 워킹셋은 1,2,5,6, 7이고 워킹셋 사이즈는 5가 됩니다.

마찬가지로 t2에서 워킹셋은 3,4이고 사이즈는 2가 됩니다.

각 프로세스의 워킹셋 사이즈의 총합을 D라고 칭하고 m은 메모리의 크기
D가 m보다 크면 스레싱이 발생하게 됩니다.

이렇게 운영체제는 프로세스들의 WS, 워킹셋을 모니터 하며 프레임을 할당하게 됩니다.

D가 m보다 작으면 새 프로세스를 실행 시키고 반대로 m이 더 크다면 하나의 프로세스를 중단합니다.

이와 같이 워킹셋으로 스레싱을 방지할 수 있습니다.

0개의 댓글