엔지니어가 되고 싶은 공돌이

25. Virtual Memory - Thashing, Working Set, PFF 본문

Computer Science/Operating System

25. Virtual Memory - Thashing, Working Set, PFF

Geca 2021. 5. 23. 14:07

13. 2 Allocation of Frames & Thrashing

<Allocation of Frames>

- 다중 프로그래밍 시스템에서 물리적 메모리를 경쟁 프로세스에 할당하는 방법이 필요.

- 2가지 방법이 존재하며, 뭐가 더 좋다고 할 수 는 없다.

1) fixed space algorithms: 각 프로세스에는 사용할 수 있는 페이지 제한이 있다.

- Local Replacement: 일부 프로세스는 잘 될 수 있고, 다른 프로세스는 어려울 수 있음.

2) variable space algorithms: 프로세스의 공간이 동적으로 확장되고 축소됨.

- Global Replacement:한 프로세스가 나머지 프로세스를 망칠 수 있다.(Linux)

 

<Thrashing> = overcommitted

- 과도한 page fault에 의해 page replacement가 계속 발생해 버벅거리는 현상

- 해결방법: 프로세스의 모든 pagewrite out한다 / 메모리를 추가 구매.

 

13. 3 Working Set Model & PFF

<Working Set>

- 정의: 현재 어떤 프로세스가 요구하는 페이지들의 집합.

- 프로세스의 메모리 사용의 dynamic locality을 모델링하는데 사용됨.

 

- Working Set Size(WSS): woring set이 필요로 하는 페이지 수.

1) WSSprogram locality에 따라 변경된다. 지역성이 좋지 않으면 더 많은 크기

2) WS가 메모리에 있어야 심각한 오류(thrashing)를 예방할 수 있다.

3) multiprogramming 정도를 조절. WSS의 합이 총 프레임 수를 넘어서면 프로세스 중단

-> thrashing 방지

 

- Working Set Page Replacement

1) working set에 없는 page를 제거.

2) virtual time(CPU 시간)을 측정.

3) PTETime of last use(Tlast)필드를 연결

4) 주기적인 clock interruptR비트를 지운다.

5) R=1이면 현재 가상 시간을 timestamp / R=0이고, age가 일정한 term보다 작으면 제거.

 

<PFF: page fault frequency>

- 각 프로세스 별로 fault를 모니터링 한다.

- 오류율이 임계치보다 높으면 더 많은 메모리를 주고, 오류율이 임계치보다 낮으면 메모리를 뺏는다.

- PFF가 증가하고, 사용 가능한 여유 프레임이 없다면 일부 프로세스를 선택해서 중지시킴.

Comments