정의
Fixed Allocation
프로세스에게 고정된 양의 Frame을 할당해줍니다.
Priority Allocation
우선순위가 더 높은 프로세스에게 더 많은 양의 Frame을 할당해줍니다.
보다 많은 Frame을 할당해주게 된다면, Page Fault횟수는 그만큼 감소하게 되고 프로세스는 작업을 더 빨리 마치게 됩니다.
즉, 우선순위가 높은 프로세스가 작업을 빨리 마치고 Frame을 반환하게 하여 Frame의 순환율을 높이기 위한 방법입니다.
Global Replacement
Victim Page를 찾을 때, 모든 프로세스의 모든 페이지에서 Victim을 찾는 방식입니다.
Local Replacement
Victim Page를 찾을 때, 해당 프로세스 내에서만 Victim을 찾는 방식입니다.
Page Replacement로 인해 발생하는 문제점
원인
한정된 자원 안에서 운영체제는 CPU의 효율성을 높이기 위해 보다 많은 프로세스를 동시에 실행합니다.
이를 위해, 메모리에 많은 프로세스를 올리게 됩니다.
이로써 CPU 효율성은 높아지게 됩니다.
하지만 동시에 실행중인 프로세스의 수가 많아질수록 하나의 프로세스가 할당받는 자원의 양은 점점 작아집니다.
그렇게 된다면 각각의 프로세스가 할당받는 Frame의 수도 적어지게 됩니다.
즉, Page Fault가 많이 발생하게 되고, 자원의 활용보다는 I/O 작업에 시간을 더욱 소비하게 됩니다.
이렇게 되면 프로그램의 진행속도는 굉장히 느려지고 CPU 효율성 역시 굉장히 떨어지게 됩니다.
여기서 문제점은 운영체제는 이러한 CPU 효율성의 저하를 극복하기 위해 메모리에 프로세스를 더욱 많이 올리게 됩니다.
이런 악순환으로 CPU 효율성은 기하급수적으로 떨어지게 되고, 결국에는 프로그램의 비정상적인 종료로 이어지게 됩니다.
이러한 현상을 Trashing 이라고 합니다.
Trashing 현상을 막기 위해서는 매 실행 시점마다 프로세스가 필요로 하는 Frame 수만큼을 할당해주어야 합니다.
하지만, 전체가 아닌 실행시간마다 필요한 만큼의 Frame 수를 정확하게 알기는 불가능합니다.
Locality를 통해 필요한 Frame의 양을 예측해볼 수 있습니다.
Locality : 기억 장치 내의 정보를 균일하게 접근하는 것이 아니라, 한 순간에 특정 부분을 집중적으로 참조하는 특성
특정한 해당 시점에서 실행되기 위해 필요한 Page들의 집합
그리고 이러한 Locality Map에서 현시점에서부터 일정 시점 전의 Locality를 바탕으로 현재의 Locality 영역을 예측하게 됩니다.
Locality가 분기되는 시점(Locality의 영역이 급변)에서는 순간 Page Fault의 횟수가 치솟게 되지만, 시간이 지날수록 수치는 안정적인 값을 찾게 됩니다.
Workgin Set Size는 보다 정확한 Locality를 추정하기 위해서는 신중하게 결정되어야 합니다.
Working Set Size : 현재 시점으로부터 과거의 Locality를 측정하는 시점의 간격