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
반응형
'개발일지 > PintOS' 카테고리의 다른 글
pintos를 마무리하며...[크래프톤 정글] (0) | 2023.12.30 |
---|---|
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 |