카테고리 없음
페이지 폴트(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)를 야기했던 인스트럭션부터 다시 수행한다.
반응형