## Goal * Project 3에서 **동적 스택 확장** 지원 * page fault 시 스택 접근으로 판단되면 **anonymous page 할당** * 스택 최대 크기 **1MB 제한** 적용 * user → kernel 진입 시 **RSP 저장**하여 kernel-mode fault도 처리 가능하게 하기 * 정상적인 fault: `f->rsp` 사용 * kernel-mode fault: thread에 저장해둔 `user_rsp` 사용 ## Plan - [ ] **vm_try_handle_fault()** * fault addr이 사용자 스택 범위(1MB 이내)인지 확인 * `addr >= rsp - 8` 등 휴리스틱으로 “스택 접근” 여부 판단 * 조건 만족 시 `vm_stack_growth(addr)` 호출 - [ ] **vm_stack_growth()** * `addr` 페이지 단위로 내림 * 필요한 스택 페이지들을 anonymous page로 추가 * PHYS_BASE 기준 1MB 초과 금지 ## Tests ## Links * [https://casys-kaist.github.io/pintos-kaist/project3/stack_growth.html](https://casys-kaist.github.io/pintos-kaist/project3/stack_growth.html) --- ## Notes * 핵심: **스택처럼 보이는 접근만 확장**, RSP 정확히 유지, 1MB 제한 준수.
Goal
f->rsp사용user_rsp사용Plan
vm_try_handle_fault()
addr >= rsp - 8등 휴리스틱으로 “스택 접근” 여부 판단vm_stack_growth(addr)호출vm_stack_growth()
addr페이지 단위로 내림Tests
Links
Notes