가상 메모리 기법에서 프로세스가 실행되는 동안 페이지들이 물리적 메모리와 스왑영역에 존재하는데
어떤 페이지가 물리적 메모리에 존재하는지 구별이 필요
=> 요구 페이징 기법에서는 유효-무효 비트를 페이지 테이블의 각 항목별로 저장
유효(v) 메모리에 해당 페이지가 적재되어 있는 경우
무효 (i) 해당 페이지가 스왑영역에 있는 경우, 현재 메모리에 없는 경우, 페이지가 속한 영역을 프로세스가 사용하지 않는 경우
1) 요구 페이징의 페이지 부재 처리
페이지 부재(page-falut)
CPU가 참조하려는 페이지가 현재 메모리에 올라와 있지 않아 유효-무효비트가 무효로 세팅되어 있는 경우
페이지 부재를 처리하는 과정
<책 그림 8-2> 페이지 부재를 처리하는 과정
CPU가 무효 페이지에 접근 -> MMU(주소 변환을 담당하는 하드웨어)가 페이지 부재 트랩 발생 -> 운영체제의 페이지 부재 처리 루틴 호출 -> 페이지에 대한 접근이 부 적법 (사용되지 않는 영역에 속한 페이지에 접근 / 해당 페이지에 대한 접근 권한 위반) -> 프로세스 종료
-> 페이지에 대한 접근이 적법 -> 물리적 메모리에 있는 빈 프레임을 할당받아 페이지를 읽어 해당 공간에 적재
-> 빈 프레임이 없는 경우
-> 물리적 메모리에 올라와 있는 페이지 중 하나를 디스크에 내려 놓음 (스왑 아웃)
즉, 부재 상태의 페이지를 메모리에 적재하기에 앞서 운영체제가 해당 페이지에 대한 접근이 적법한지 체크하는 과정
페이지 부재를 발생 시킨 프로세스 -> 봉쇄상태(디스크에서 파일을 다 읽어올때 까지 CPU를 반환)
(이유) 해당 페이지를 디스크에서 물리적 메모리에 적재하기까지 시간이 오랜시간 소요 - CPU 가 필요없음, 오버헤드 발생
디스크에 요청한 입출력 작업이 완료-> 인터럽트 발생 -> 해당 페이지 테이블에서 유효 비트로 설정 -> 준비 큐에서 대기
2) 요구 페이징의 성능
요구 페이징의 성능에 가장 큰 영향을 미치는 것은 페이지 부재의 발생 수
(이유) 디스크에서 메모리에 적재하는 과정(스왑아웃 -> 스왑인 -> 문맥교환) 에서 오버헤드 발생
유효 접근시간이 짧을 수록 ( 페이지 부재의 발생수가 적을 수록) -> 요구 페이징 기법의 성능은 향상
성능 평가 방법
유효 접근시간(effective access time) = (1- P) × 메모리 접근시간 + P× ( 페이지 부재 발생 처리 오버헤드 + 메모리에 빈 프레임이 없는 경우 스왑 아웃 오버헤드 + 요청된 페이지의 스왑 인 오버헤드 + 프로세스의 재시작 오버헤드)
(1 - P) : 페이지 부재가 일어나지 않는 비율
페이지 부재 발생비율(page fault rate) 0 ≤ P≤ 1 P = 0 : 페이지 부재가 한 번도 일어나지 않은 경우 P = 1 : 모든 참조 요청에서 페이지 부재가 발생한 경우