[Pint OS] Stack Growth
·
프로젝트/Pint OS
Stack Growth 프로젝트 2에서 스택은 USER_STACK에서 시작하는 단일 페이지(4KB) =였으나, 프로젝트 3에서 스택은 현재 크기를 초과하면 필요에 따라 추가 페이지를 할당한다! Stack Growth 개념은 이해했으나 구현에 벅찼지만, 뛰어난 동료 덕분에 구현을 마치고 이해할 수 있었다. Page Fault 시, 스택 포인터 Stack Growth를 수행하기 전에 현재 스택 포인터의 값을 얻어야 한다. System Call 또는 User Program에 의해 발생한 Page Fault 루틴에서 각각 syscall_hanler() 또는 page_fault()에 전달된 struct intr_frame의 rsp 멤버에서 검색할 수 있다. 또한, Page Fault로 잘못된 메모리 접근을 감지하..