[OS] Page Replacement

페이지 교체

  • page reference string

CPU가 내는 주소를 페이지 번호로 바꾸어야한다.

  • page replacement algorithms

First-In First-Out

  • simplest

CPU에서 특정 페이지 번호를 읽으려고 할때, 메모리에 확인하고 없으면 page fault가 일어나서 하드디스크에서 해당 페이지 번호를 가지고와서 메모리에 올린다.

이런 일이 일어나서 메모리가 가득 찼을 때, 특정 페이지 번호가 마찬가지로 메모리에 없으면, page fault가 일어나지만 해당 메모리에 자리가 없으면 제일 먼저 온 페이지 번호를 몰아내고 그 자리에 해당 페이지 번호를 하드디스크에서 가져와서 넣게 된다.

이런 식으로 해당 페이지 번호가 메모리상에 존재하지 않을 때, 제일 먼저 들어왔든 페이지 번호를 하드디스크로 다시 보내고, 해당 페이지 번호를 가져와서 그 자리에 넣는다.

Optimal

메모리에 올라와서 최근에 사용이 제일 적게된 것 기준으로 하드디스크로 다시 넣게되는 것 (앞으로 사용이 안되는 것 기준으로 하는 것은 예측이 힘들다. 그래서 최근 기준으로 판단)

Optimal 또한 page fault가 일어나서 하드디스크에서 페이지를 메모리로 가져와야할 때, 메모리가 가득 찬 경우에 일어난다.

가장 좋은 방법이지만, 적용하기 어려운 방법이다.

LRU

대부분의 컴퓨터가 사용하는 방식이다.

Global vs Local Replacement

page fault가 일어나서 메모리상에 하드웨어로 보내게 될 페이지를 선택하는 기준 (victim)

  • Global

선택하는 범위가 메모리 전체일 때

  • Local

선택하는 범위가 해당 프로세스일 때

  • 성능 비교

Global이 더 효율적일 수 있다.