Working set이론

OS/Theory 2016. 4. 21. 10:00

<Working set이론>


프로세스가 특정 시점에서 집중적으로 참조하는 페이지들의 집합을 말한다. 이것을 메모리에 적재되도록 함으로써 페이지 부재를 최소화 한다.

Working set은 시간에 따라 변하게 되는데 이를 공식적으로 정의하면 다음과 같다.

시점 t에서 프로세스의 Working set, W(t, Δt)는 해당 프로세스가 [t – Δt ,t] 시간 동안 참조한 페이지들의 집합

Δt는 일정 크기의 시간으로 윈도 크기(Window Size)라 부르며, 시스템에 의해 적절한 값으로 정해진다.




Working set이란 현 시점에서의 지역성을 표현하고, 이 페이지 집합은 앞으로도 당분간 집중적으로 참조될 것이라 보는 것이다.

Working set을 메모리에 적재되도록 하여 스레싱 때문에 겪게 될 성능 감소를 미연에 방지할 수 있다.

윈도 크기를 너무 크게 잡으면 지역성에 포함되는 페이지들 외에 다른 페이지들도 Working set에 포함될수 있게 되어 메모리의 낭비와 함께 적정한 다중 프로그래밍 정도를 유지하기 힘들다.

너무 작게 잡으면 지역성에 포함되는 페이지들조차 Working set에서 빠져 스레싱을 겪게 될 것이므로 시스템의 다양한 상황을 반영하여 세심하게 결정해야 한다.

다음 그림을 보도록 하자.

 

1. 프로그램의 실행이 시작된 후 t0부터 처음 참조되는 페이지들은 부재를 겪으며 점차 Working set을 키워가다가 t1에서 최대 크기인 5가 됨

2. 이후부터 지역성을 보이면서 t2에서와 같이 (세 개의 페이지로 Loop 1을 구성하는 동안에는) 일정한 크기(=3)로 유지 됨

3. 실행이 진행되면 다음 지역성을 보이는 Loop 2 부분으로 넘어가면서 t3에서 5개로 증가했던 Working set은 점점 줄어들어 t4에서와 같이 페이지 두 개로 구성되는 강한 지역성을 드러냄

[Working set 이론 정리]

지역성을 표현하는 Working set을 메모리에 유지함으로써 스레싱을 방지하겠다는 것이다. 크기에 변동이 있으므로 Working set이 작아지면 프레임을 회수하고 커지게 되면 그만큼 프레임을 더 할당해 주는 가변 할당이 필요하다는 것이다.




Copyright2014 By 휴먼사이언스

 

posted by 경원구