Thrashing (쓰레싱)이란?

OS 2016. 4. 21. 17:29

Thrashing(쓰레싱)

- 메모리 영역에 접근하게 될 때, 메모리에 페이지 부재(=페이지 폴트(Page fault)율이 높은 것을 의미하며, 심각한 성능 저하를 초래합니다.


- 활발하게 사용되는 페이지 집합을 지원해 줄 만큼 프레임이 충분히 할당 받지 못한 프로세스는 페이지 폴트(Page fault)가 발생하게 됩니다.

이 때, 페이지 교체가 필요하지만 이미 활발히 사용되는 페이지들만으로 이루어져 있으므로 어떤 페이지가 교체되던 바로 다시 페이지 교체가 필요하게 될 것입니다.

결과적으로 바로바로 반복해서 페이지 폴트가 발생하며, 교체된 페이지는 또 다시 얼마 지나지 않아 읽어올 필요가 생기게 됩니다. 이렇게 과도한 페이징 작업을 Thrasing(쓰레싱) 이라 합니다.


(쓰레싱의 원인)

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


2) 운영체제는 CPU이용률을 감시하며, CPU이용률이 너무 낮아지면 새로운 프로세스를 시스템에 추가하여 다중 프로그래밍의 정도를 높이게 됩니다. 이 때 전역 페이지 교체 알고리즘을 사용하여 어떤 프로세스의 페이지인지에 대한 고려없이 교체를 수행하게 됩니다.

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

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

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

새로 시작하는 프로세스는 실행중인 프로세스들로부터 프레임을 가져오고자 하며, 더 많은 페이지 폴트와 더 긴 페이징 대기시간을 야기하게 됩니다.

결과적으로  CPU이용률은 더 떨어지게 되며, CPU스케줄러는 다중 프로그래밍의 정도를 더 높이려 하게 되어 쓰레싱이 일어나게 됩니다. 따라서 시스템 처리율은 상당히 낮아지고 페이지 폴트는 늘게되어 실질적인 메모리에 접근하는 시간은 증가하고 프로세스들은 페이징 하는데에 시간을 소비하게 되어 아무런 일도 할 수 없는 상태가 됩니다.

[다중 프로그래밍의 정도]

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

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


(쓰레싱 현상 방지)

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




참고 ) http://faithpac27.tistory.com/entry/쓰레싱-Thrashing-이란

'OS' 카테고리의 다른 글

fork()와 exec()의 차이  (0) 2016.04.21
IPC의 종류와 특징  (2) 2016.04.21
RAID란? RAID의 종류와 구성방식  (0) 2016.04.19
분산 처리 시스템의 위상(Topology)에 따른 분류  (0) 2016.04.19
운영체제의 운용 기법  (0) 2016.04.19

WRITTEN BY
SiriusJ

,