본문 바로가기

University Classes/Operating System

쓰레싱 (Thrashing) 이란?

1.    쓰레싱 이란?

ㄱ. 페이지 부재율이 높은 것을 의미 

ㄴ. 스레싱은 심각한 성능 저하를 초래 

ㄷ. 충분한 프레임을 할당 받지 못한 프로세스에 대해 생각해보자

 

   활발하게 사용되는 페이지 집합을 지원해 줄 만큼 프레임이 충분히 할당 받지 못한 프로세스는  
페이지 부재가 발생하게 된다
.

 

이때 페이지 교체가 필요하지만 이미 활발하게 사용되는  페이지들만으로 이루어져 있으므로

어떤 페이지가 교체되든지 바로 다시 페이지 교체가 필요 하게 될 것이다.

 

결과적으로 바로 바로 반복해서 페이지 부재가 발생하며 교체된 페이지는 다시 얼마 지나지 않아

읽어올 필요가 생긴다.

이러한 과도한 페이징 작업을 쓰레싱 이라 한다.

  

2.    쓰레싱의 원인

ㄱ. 다중 프로그래밍 정도가 높아짐에 따라 CPU 이용률이 높아진다

CPU이용률이 최대값에 도달하였을때, 다중 프로그래밍의 정도가 그 이상으로 더 커지면

쓰레싱이 일어나게 되고 CPU 이용률은 급격히 떨어진다.

ㄴ. 운영체제는 CPU 이용률을 감시하면서, CPU 이용률이 너무 낮아지면 새로운 프로세스를 시스템에 더 추가해서 

다중 프로그래밍의 정도를 높인다 이 때 전역 페이지 교체 알고리즘을 사용하여 어떤 프로세스의 페이지인지에 대한 고려 없이 교체를 수행한다.

 

이제 어떤 프로세스가 새로운 실행 단계로 진입하여 더 많은 프레임을 필요로 한다고 가정하자.

페이지 부재가 발생하면서 다른 프로세스로부터 프레임들을 가져오게 될 것이다.

그런데 교체된 페이지들이 해당 프로세스에서 필요로 하는 것이었다면,

그 프로세스 역시 페이지 부재를 발생시키고  또 다른 프로세스에서 프레임을 가져온다.

이러한 프로세스들이 페이지 스왑 인, 스왑 아웃을 위해 페이징 장치를 사용해야 한다.

페이징 장치에 대한 큐잉이 진행되면서 준비 완료 큐는 비게 된다.

프로세스들이 페이징 장치를 기다리는 동안 CPU이용률은 떨어진다.

CPU 스케줄러는 이용률이 떨어지는 것을 보고, 이용률을 높이기 위하여 새로운 프로세스를  추가하여 

다중 프로그래밍의 정도를 더 높인다.

새로 시작하는 프로세스는 실행중인 프로세스들로부터 프레임을 가져오고자 하며 

더 많은 페이지 부재와 더 긴 페이징 장치 대기 시간을 야기한다.


결과적으로 CPU 이용률은 더욱 떨어지고, CPU스케줄러는 다중프로그래밍 정도를 더욱 높이려고 한다

결국 쓰레싱이 일어나게 되어 시스템의 처리율은 대단히 낮아지고 페이지 부재는 상당히 늘어난다

실질 메모리 접근 시간은 증가하고 프로세스들은 페이징 하는데 시간을 다 소비 하게 되어 아무런 일도 

할 수 없게 된다. 

  

3.    쓰레싱은 지역교환 알고리즘이나 우선순위 교환 알고리즘을 사용하여 제한할 수 있음

: 지역교환 알고리즘 하에서는 한 프로세스가 쓰레싱을 유발하더라도 다른 프로세스로부터 프레임을 뺏어 올 수

없으므로,  다른 프로세스는 쓰레싱으로 부터 자유로울 수 있다.

 

4.    쓰레싱 현상을 방지하기 위해서?

:  각 프로세스가 필요로하는 최소한의 프레임 개수를 보장해주어야 한다.





 

'University Classes > Operating System ' 카테고리의 다른 글

가상메모리란? (virtual memory)  (0) 2012.06.27
페이지 교체 알고리즘  (0) 2012.06.14
캐쉬(cache)  (0) 2012.06.12
캐시 교체 알고리즘, 캐시 쓰기 정책  (0) 2012.06.11
프로세스 내 캐쉬 관리  (0) 2012.06.11