Thrashing
Thrashing
- Page fault가 자주 발생해서 CPU 이용률이 급격하게 떨어지는 현상
- 프로세스를 처리하는 시간보다 페이지 교체에 사용되는 시간이 더 소요됨
- 다중 프로그래밍의 정도가 높아질 때 발생 가능
Working set model
혹은 Page fault frequency
를 통해 해결 가능
Working set model
- 지역성의 원리를 이용
- 특정 프로세스가 원활하게 실행되기 위해 모두 메모리에 올라와 있어야 하는 페이지 집합을
working set
이라고 함 - 현재 페이지 이전에 참조된 n개의 페이지를
working set
으로 묶어서, 한꺼번에 메모리에 올림 - 모든 프로세스의
working set
이 메모리에 올라오지 못하면 thrashing 발생 가능- 이 경우 다중 프로그래밍의 정도를 조절해야 함
- 매 번
working set
을 계산하기에는 오버헤드가 많음
Page fault frequency
Working set model
의 오버헤드를 없앨 수 있음- Page fault가 발생하는 비율을 주기적으로 조사
- 특정 프로세스의 page fault가 일정 값보다 적으면 해당 프로세스에 할당된 page frame을 회수
- 반대의 경우에는 더 많은 page frame을 할당함
References
- https://deep-learning-challenge.tistory.com/21
- https://wpaud16.tistory.com/292
- https://velog.io/@anjaekk/OS-Thrashing