[운영체제] 쓰레싱


쓰레싱이란?

  • 페이지 부재율이 높은것.
  • 심각한 성능저하를 초래한다.
  • 과도한 페이징 작업

쓰레싱의 원인

  • 다중 프로그래밍 정도가 높아짐에 따라 CPU 이용률이 높아진다. CPU이용률이 최대값에 도달하였을때, 다중 프로그래밍의 정도가 그 이상으로 더 커지면 쓰레싱이 일어나게 되고 CPU 이용률은 급격히 떨어진다.

  • 운영체제는 cpu 이용률을 감시하며 cpu 이용률이 너무 낮아지면 새로운 프로세스를 추가하여 멀티 프로그래밍의 정도를 높인다.

    • 전역 페이지 교체 알고리즘을 사용하여 사용할 수 있습니다. 어떤 프로세스의 페이지인지에 대한 고려없이 교체를 수행하게 됩니다. (이게 문제)

    • 교체된 페이지들이 해당 프로세스에서 필요로 하는 것이었다면 다시 그 프로세스 역시 페이지 폴트를 발생시키고 다른 프로세스에서 프레임을 가져옵니다.

    • 이러한 프로세스들이 페이지 스왑인, 스왑아웃을 위해 페이징 장치를 사용해야 하는데, 이 장치에 대한 Queueing 이 진행되며 Ready-Queue는 비게됩니다.

      스왑 아웃(swap out) : 프로세스를 잠깐 secondary storage에 저장(쫓아냄)

      스왑 인(swap in) : 저장해둔 프로세스를 다시 메모리에 올려서 이프로세스를 그 다음부터 수행되도록 다시 로딩하는것.

    • 이렇게 프로세스들이 페이징 장치를 기다리는 동안 CPU의 이용률은 떨어진다. 그러면 CPU 스케쥴러는 이용률이 떨어지는 것을 보고, 다시 이용률을 높이기위해 새로운 프로세스를 추가 하여 다중 프로그래밍의 정도를 더 높인다.

    • 이렇게되면 계속 더많은 페이지폴트와 더 긴 페이징 장치 대기시간을 발생시키기 때문 에 악순환으로 인해 결과적으로 프로세스들은 페이징을 하는 데 시간을 다 소비하게 되어 아무일도 할 수 없게 된다.

쓰레싱 제한 방법

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

지역 교환(교체) 알고리즘

현재 수행중인 프로세스에게 할당된 페이지 프레임 내에서만 페이지를 교환하는 방법이다.

Q. 왜?

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

쓰레싱 현상 방지 방법

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

Reference

https://jwprogramming.tistory.com/56

on Operating System, Cs, Thrashing