page fault 2

PintOS Project 3 - Virtual Memory (5) mmap() 및 page fault 관련 추가 정리(정글사관학교 82일차 TIL)

저번 시간에는 mmap/munmap을 통해 가상 메모리에 페이지를 할당해주는 방법에 대해 배웠다. mmap에 대해 궁금한 점을 마저 정리하고 내일 swap in/out으로 넘어가련다. 정리 1: mmap으로 페이지를 할당받으면 힙/스택 중 어느 공간에 페이지가 할당되는가? 결론부터 말하면 mmap으로 페이지를 할당받으면 힙도 스택도 아닌 공간에 할당된다. 아래 그림에서도 나와있듯 mmap은 file의 offset 위치부터 length 길이만큼 읽어들여 가상 메모리에 매핑한다. 이때 주의할 점은 첫번째로 매핑할 때는 물리 프레임에는 올리지 않는다는 점. 이 역시 malloc()과 차이라고 할 수 있는데, malloc()은 힙 공간에 인자로 넣어주는 사이즈만큼의 공간을 할당한다. 공부하면서 느끼는 건데, m..

정글사관학교 39일차 TIL: 가상 메모리(Virtual Memory) / CSAPP 9장 정리

대망의 RB트리 주차가 끝나고 malloc 함수 구현 과제 주차에 들어섰다. (현재 6주차) 어제는 시원하게 블로그 TIL을 건너뛰었다. (그래도 github에 저번 주차에서 배운 것들을 정리했다! BST 먼저 정리하고 이번주 주말에 가능하면 RB트리 readme를 작성할 예정.) 시원하게 쉬었으니 오늘부터 다시 달립시다. malloc 개념은 CSAPP 책 9.9 장에 나온다. 그 전에 9장 전반적으로 정리를 할 필요가 있어 가장 큰 개념인 가상 메모리부터 정리. 가상 메모리(virtual memory) 가상 메모리를 쓰는 이유는 메모리를 더욱 효율적으로 & 더 적은 에러로 관리하기 위해서이다. 이와 관련해 아주 재밌게 설명한 영상이 있어 공유. 예를 들어, 어떤 식당이 있다고 하자. 이 식당은 예약제로..