택시짱의 개발 노트

페이지 폴트(page fault) 발생시, 페이지 요구 과정(demand paging) 본문

카테고리 없음

페이지 폴트(page fault) 발생시, 페이지 요구 과정(demand paging)

택시짱 2020. 10. 19. 16:19

1. 페이지 테이블을 검사하여 필요로 하는 페이지의 메모리 참조가 유효(valid)한지, 유효하지 않은지(invalid) 판단한다.

 

2. 유효하지 않은(invalid) 상태라면 운영체제에게 트랩(trap)을 건다. 운영체제는 invalid 한 경우가 메모리 경계를 넘는 것이라면 프로그램을 종료시키고, 페이지 폴트(page fault)라면 free frame 을 찾는다.

 

3. 디스크에서 해당 페이지를 로딩하라고 I/O 요청을 하며, 프로세스를 waiting 상태로 바꾼다.

 

4. 페이지가 free frame 에 로딩이 완료되었다는 인터럽트가 오면 페이지 테이블에 접근해서 상태를 invalid 에서 valid로 변경한 후, 프로세스를 waiting 에서 ready 로 변경한다.

 

5. 페이지 폴트(page fault)를 야기했던 인스트럭션부터 다시 수행한다.

반응형
Comments