핵심 키워드 : 요구 페이징, 페이지 교체 알고리즘, 스레싱, 프레임 할당

요구 페이징

프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법을 요구 페이징(demand paging) 이라고 합니다. 이름 그대로 실행에 요구되는 페이지만 적재하는 기법이지요.

요구 페이징의 기본적인 양상

  1. CPU가 특정 페이지에 접근하는 명령어를 실행한다
  2. 해당 페이지가 현재 메모리에 있을 경우 (유효 비트가 1일 경우) CPU는 페이지가 적재된 프레임에 접근한다.
  3. 해당 페이지가 현재 메모리에 없을 경우 (유효 비트가 0일 경우) 페이지 폴트가 발생한다
  4. 페이지 폴트 처리 루틴은 해당 페이지를 메모리로 적재하고 유효 비트를 1로 설정한다.
  5. 다시 1번을 수행한다.

참고로 아무런 페이지도 메모리에 적재하지 않은 채 무작정 실행부터 할 수도 있습니다. 이 경우 프로세스의 첫 명령어를 실행하는 순간부터 페이지 폴트가 계속 발생하게 되고, 실행에 필요한 페이지가 어느 정도 적재된 이후부터는 페이지 폴트 발생 빈도가 떨어집니다.

이를 순수 요구 페이징(pure demand paging) 기법이라고 합니다.

요구 페이징 시스템이 안정적으로 작동하려면 필연적으로 다음 두 가지를 해결해야 합니다.

하나는 페이지 교체이고, 다른 하나는 프레임 할당입니다.

페이지 교체 알고리즘

좋은 페이지 교체 알고리즘은 무엇일까요? 일반적으로 페이지 폴트를 가장 적게 일으키는 알고리즘을 좋은 알고리즘으로 평가합니다. 페이지 폴트가 일어나면 보조기억장치로부터 필요한 페이지를 가져와야 하기 때문에 메모리에 적재된 페이지를 가져오는 것보다 느려지기 때문이지요.