[sw 정글] pintos 3주차 - part 6: Copy on write(cow) ALL PASS
·
지난 글 모음
목표 이전의 pintos는 fork할 때 부모가 메모리가 할당된 page에 대해서 자식에게 복사할 때 같은 내용의 물리메모리를 자식에게도 할당 해주었다. 이처럼 같은 메모리가 두번 복사되는 것은 메모리 낭비이다. 그렇기 fork시에 자식과 부모가 같은 물리 메모리를 가리키게 하고 해당 페이지에 write 요청이 발생하면 새로운 물리메모리를 할당하여 주도록 수정한다. 💡 fork 시 물리메모리를 모두 복사하지 않고 부모와 같은 물리메모리를 공유하다가 write작업 시 해당 페이지의 물리메모리를 새로 맵핑한다. COPY시 코드 수정 fork시에 page와 frame은 복사본은 자식에게 주지만 frame에 있는 kva에는 부모와 자식이 같은 곳을 가리고 있다. bool supplemental_page_tabl..