과제 설명서를 보면서 순서대로 구현하는것을 추천합니다
현재 페이지 테이블 엔트리만으로는 OS를 동작시키기 어렵다. 예를 들면 요구 페이징 기법을 위해 만들어진 미초기화 페이지에 접근해서 페이지 폴트가 발생했다면? 이 페이지가 기존에 할당받아야했던 프레임 정보를 어딘가에 저장해둬야 한다. 이러한 페이지의 메타데이터를 구조체로 나타낸것이 page 구조체이고, 이를 담아두는 테이블이 SPT이다.
struct supplemental_page_table
{
void *va;
struct page *page;
struct hash_elem elem;
};
void supplemental_page_table_init (struct supplemental_page_table *spt);
struct page *spt_find_page (struct supplemental_page_table *spt, void *va);