pintos vm 공부 키워드

page, frame, page table, frame table
아는 것 같은데

잘 모르겠다.
명확하지 않아.
설명을 못하겠어.
설명 못해?
그럼 모르는거야.

페이지란?
pintos의 페이지는
pml4 -> pdp -> pgdir -> pte -> phsyical address
이렇게 4단계로 구성되어 있다.

출처: https://blog.xenoscr.net/2021/09/06/Exploring-Virtual-Memory-and-Page-Structures.html
(사진과 다를 수 있음)
프레임이란??
출처: https://en.wikipedia.org/wiki/Page_table
페이지(가상 메모리 4KB 단위)는 페이지 테이블을 통해 물리 프레임에 매핑되며, 그 프레임은 코드, 데이터, 힙, 스택 등 유저 메모리 영역의 실제 내용을 담고 있다.
page -> page table -> frame
kernel pool에 위치해 있고user pool에 위치해 있다.찾아 보기 전까지 page는 가상 메모리일 때 불리는 이름이고,
frame은 물리 메모리일 때 불리는 이름일 뿐이잖아?
위치에 따라 이름만 다르게 부르는게 그럼
"page == frame 아니야?" 이렇게 생각했다.
같다고도 말할 수 있지만, 사실 다르다.
현재 pintos 진행중)
출처: https://ddongwon.tistory.com/49
page table의 위치는 사실 Physical Memory에 위치해 있다고 알고 있다.
그렇기 때문에 위 이미지(위키피디아)에는 page table이 따로 보이진 않는 것 같다.
근데 사람의 입장으로 이렇게 따로 빼서 시각화하고 기억하는게 훨씬 좋은듯?
하나의 프로세스는 하나의 page table만 가질 수 있다.
출처: https://www.geeksforgeeks.org/operating-systems/page-table-entries-in-page-table/
page table에는 각각의 PTE(Page Table Entry)를 갖고 있다.
사실 page는 이전 userprog 에서도 많이 사용했는데,
사실 제대로 모르고 사용했던거임.
그래서 이번에 정리 ~끝~