스레싱
•
스레싱(Thrashing)이란 페이지 부재율(Page fault)이 증가하여 CPU 이용율이 급격하게 떨어지는 현상을 얘기한다.
•
스레싱이 발생하는 이유는 프로세스를 처리하는 시간보다 메모리에 적재되지 못한 페이지로 인하여 페이지 교체에 드는 시간이 증가하게되고 그로 인해 CPU이용률이 떨어지게 된다.
•
운영체제는 CPU 이용율이 낮으면 메모리에 동시에 올라가 있는 프로세스의 수인 MPD(다중 프로그래밍의 정도, Multi-Programming Degree)를 높이게 되는데 동시에 실행하는 프로세스가 많아질 수록 각 프로세스에 할당된 메모리 페이지 프레임들은 더욱 작아지게 된다.
•
너무 적은 페이지 프레임을 할당받은 프로세스들은 페이지 부재가 증가하게 되어 Swapping이 증가하게 되고 결국 CPU의 이용율이 더욱 떨어지는 악순환이 생기게 된다.
해결 방법
•
물리적인 성능 개선
◦
메모리의 크기를 늘림
◦
HDD일 경우 SSD로 교체
•
작업세트 (Working set)
◦
과거 사용 이력인 지역성(locality)을 통해 결정된 페이지 집합을 만들어 미리 메모리에 로드
◦
탐색에 드는 비용 줄고 스와핑 줄어듬
◦
하지만 해당 워킹셋의 합인 전체 프레임이 할당된 페이지 프레임보다 크게되면 Thrashing이 발생하게 된다.
•
PFF (Page Fault Frequency)
◦
프로세스의 페이지 폴트율을 주기적으로 조사하고 이 값에 근거하여 각 프로세스에 할당할 메모리 양을 동적으로 예측하고 조절하는 방법
◦
현재 페이지 부재와 직전 페이지 부재 사이의 시간을 관찰하여 상한 값을 초과하거나 하한 값 미만이 되면 운영체제가 메모리에 올라가 있는 프로세스 수를 조절한다.
더 공부하고 싶다면