프레임 할당

Woosung Kim·2022년 1월 30일
0

Global vs Local Replacement

Global Replacement : 메모리 상의 모든 프로세스 페이지에 대한 교체 작업을 수행한다.
Local Replacement : 메모리 상의 자기 자신의 프로세스 페이지에 대해서만 교체 작업을 수행한다.

메모리 사용 효율은 일반적으로 Global Replacement가 좋다.

프레임 할당 (Allocation of Frames)

쓰레싱 (Thrashing)

일반적으로 메모리에 올라가는 프로세스 개수가 증가할수록 CPU의 이용률이 올라가지만, 일정 범위를 넘어서면 오히려 CPU 이용률이 감소하는 현상이 나타난다.

원인 : 프로세스가 증가할수록 메인 메모리의 비어있는 프레임 개수는 줄어들게 되고 결국 모든 프레임이 가득 차게 된다. 그 후에도 계속 프로세스가 증가한다면 메모리와 backing store 사이에 page in/out 작업이 발생하는데, 프로세스가 많아질수록 이 작업 역시 증가한다. page in/out은 디스크 I/O 작업으로 CPU를 사용하지 않는 작업이다. 그러므로 이 작업이 많아질수록 CPU는 그동안 아무것도 하지 않게 된다.

→ 해결 방법

  • Local Replacement를 사용
  • 프로세스당 적절한 프레임 개수 보장

프레임 할당 방법

🐾 정적 할당

  • 동일할당: 모든 프로세스에게 똑같이 프레임 할당
  • 비례할당: 프로세스 크기에 따라 프레임 할당

🐾 동적 할당

  • Working set Model: 시간에 따라 주로 참조하는 페이지를 계산하여 해당 값을 통해 프레임 할당. 미래를 알 수 없기 때문에 working set을 만듦
  • Page Fault Frequency: page fault의 발생 비율을 측정하여 프레임을 할당
profile
개발하는 강아지

0개의 댓글