(의미) 메모리에 올라와 있는 프로세스의 수가 너무 적어 모든 프로세스가 I/O 작업을 함으로써 준비 큐가 비는 현상이 발생
CPU의 이용률이 낮다 = 일을 안한다 -> 운영체제가 메모리에 올라가는 프로세스의 수가 적다고 판단 -> 메모리에 프로세스를 추가 -> 동시에 올라가 있는 프로세스의 수(multi-programing Degree: MPD)가 증가 -> MPD가 과도하게 많아지면 -> 각 프로세스가 최소한의 프레임을 할당받지 못함 -> 페이지 부재가 발생 -> 디스크 I/O 수행 -> 문맥교환을 통해 다른 프로세스에게 CPU 이양 -> 다른 프로세스도 최소한의 프레임을 할당 받지 못함 -> 페이지 부재 -> 디스크 I/O 수행 -> 문맥교환을 통해 다른 프로세스에게 CPU 이양 이런 식으로 준비 큐에 있는 프로세스가 CPU를 할당 받아도 페이지 부재처리하기에 바빠짐 이 때문에 CPU의 이용률이 낮아짐
MPD를 조절하면서 CPU 이용률을 높이는 방법
1) 워킹셋 알고리즘 (working-set algorithm)
워킹셋 = 프로세스가 일정 시간동안 원활히 수행되기 위해 한꺼번에 메모리에 올라와있어야 하는 페이지들의 집합
워킹셋이 메모리에 올라갈 수 있는 경우에만 그 프로세스에 메모리 할당
불가능한 경우는 디스크로 스왑아웃
한꺼번에 메모리에 올라가야 할 페이지들의 집합을 결정하는 방법
워킹셋 윈도우(△) 사용
페이지가 참조된 시점 부터 △ 시간 동안은 메모리에 유지하고, 그 시간이 지나면 메모리에서 지움
△ 의 크기를 잘 결정하는 것이 중요
너무 작으면 - 지역성 집합을 모두 수용 못할 경우 발생
너무 크면 - MPD가 감소해 CPU의 이용률 낮아지는 경우 발생
메모리 내에 있는 모든 프로세스에 프레임을 다 할당한 후 프레임이 남으면?
스왑아웃 되었던 프로세스에게 프레임 할당
2) 페이지 부재 빈도 알고리즘 (page-fault frequency scheme)
페이지 부재율을 주기적으로 조사하고 이에 따라 각 프로세스에 할당할 메모리의 양을 동적으로 조절
설정한 상한 값 이상 -> 해당 프로세스에 프레임을 추가로 할당
설정한 하한 값 이하 -> 해당 프로세스에 필요이상으로 프레임이 할당 된것으로 간주하여 할당된 프레임의 수 줄임