PintOS Project3-3

Stack growth 질문 User programs are buggy if they write to the stack below the stack pointer, because typical real OSes may interrupt a process at any time to deliver a “signal,” which modifies data on the stack. However, the x86-64 PUSH instruction checks access permissions before it adjusts the stack pointer, so it may cause a page fault 8 bytes below the stack pointer. 유저 프로그램은 스택에 wtire 할 때 스택 포인터보다 아래에 하면 버그가 발생한다. 일반적으로 실제 OS들은 스택의 데이터를 수정하는 “신호"를 전달하기 위해 언제든지 process에 interrupt하기 때문이다. 하지만 x86-64 PUSH 인스트럭션은 스택 포인터에 적용하기 전에 접근 허가를 확인해서, 스택포인터보다 8바이트 아래에 page fault를 발생시킨다. ...

2023년 5월 16일 · 3 분 · 배준수