Thrashing Diagram
![](https://velog.velcdn.com/cloudflare/chullll/bf81b058-bcc4-47b7-b964-a216dcf45537/image.png)
- 메모리에 너무 많은 프로그램이 올라가 있어서 프로그램이 메모리를 너무 조금만 할당 받게 됨
- 그 결과 페이지 폴트가 잦아짐 -> CPU 이용률 하락
- 페이지 폴트를 처리하느라 정신이 없어짐
Thrashing
- 프로세스의 원활한 수행에 필요한 최소한의 page frame 수를 할당 받지 못한 경우 발생
- Page fault rate가 매우 높아짐
- CPU utilization 낮아짐
- OS는 MPD(Multiprogramming Degree) 높여야 한다고 판단
- 또 다른 프로세스가 시스템에 추가됨 -> 프로세스 당 할당된 frame 더욱 감소
- 프로세스는 page swap in/out 하느라 바쁨
Working-set Model
Locality of reference
- 프로세스는 특정 시간 동안 일정 장소만을 집중적으로 참조한다.
- 집중적으로 참조되는 해당 page들의 집합을 locality set이라고 함
Working-set Model
- Locality에 기반해 프로세스가 일정 시간 동안 원활하게 수행되기 위해 한꺼번에 메모리에 올라와 있어야 하는 page 들의 집합을 Working set이라고 정의
- Wokring set 모델에는 process의 working set 전체가 메모리에 올라와 있어야 수행되고 그렇지 않은 경우 모든 frame을 반납하고 swap out(suspend)
- Thrashing를 방지함
- MPD 결정
PFF (Page-Fault Frequency) Scheme
![](https://velog.velcdn.com/cloudflare/chullll/73fe333c-5436-4458-8d4a-cb2570a043ec/image.png)
- 페이지 할당값을 적절하게 유지 하는것이 목적
- 프로세스의 page fault 비율을 보고 페이지를 더 줄지 말지 결정
- page fault rate의 상/하한값을 둔다
- 상한값을 넘으면 더 할당
- 하한값을 이하면 줄인다
- 빈 frame 이 없으면 일부 프로세스 swap out