본문 바로가기
개발일지

pintos - virtual memory(7)

by Peter.JH 2023. 12. 25.
728x90

지금까지 스택은 USER_STACK에서 시작하는 단일 페이지였으며, 프로그램 실행은 이 크기로 제한되었다. 이제 스택이 현재 크기보다 커지면 필요에 따라 추가 페이지를 할당해야한다.\

 

bool vm_try_handle_fault (struct intr_frame *f, void *addr,
    bool user, bool write, bool not_present);

 

git_book:

이 함수는 페이지 오류 예외를 처리하는 동안 userprog/exception.c의 page_fault에서 호출됩니다. 이 함수에서는 페이지 오류가 스택 증가에 유효한 경우인지 여부를 확인해야 합니다. 스택 증가로 오류를 처리할 수 있음을 확인했다면 오류가 발생한 주소로 vm_stack_growth를 호출합니다.

 

void vm_stack_growth (void *addr);

 

git_book:

하나 이상의 익명 페이지를 할당하여 스택 크기를 늘려 addr이 더 이상 오류 주소가 되지 않도록 합니다. 할당을 처리할 때 addr을 PGSIZE로 반내림해야 합니다.

 

추후 설명예정....!

728x90

'개발일지' 카테고리의 다른 글

node.js - 연습해보기  (0) 2023.12.29
pintos.........  (0) 2023.12.28
pintos - virtual memory(6)  (0) 2023.12.22
pintos - virtual memory(5)  (0) 2023.12.22
pintos - virtual memory(4)  (0) 2023.12.20