09_pintos_3_VM

신치우·2022년 12월 5일
0

data_structure_and_Pintos

목록 보기
25/36

pintos VM을 진행하기에 앞서 먼저 필요한 내용들을 다시한번 정리해보려고 한다.

우리 pintos 기준 가상메모리와 물리메모리의 관계



CR3 참고자료

  1. page : 가상메모리를 일정한 크기로 나눈 블록
  2. frame : 물리메모리를 일정한 크기로 나눈 블록
  • 기존 pml4를 사용할때는 page fault 등의 문제가 발생하면 panic을 띄우면서 동작을 종료함
  • 하지만 이제부터는 page fault를 handling 할 것이고, 자원관리도 진행할 것임
    (code는 아직 진행중이라 나중에 한번에 순서를 엮어서 올리겠음)
  • 가상메모리의 page는 위와 같은 과정을 통해서 물리메모리에 mapping됨

페이지의 종류 3가지 (cache page까지 4개인데 일단은 3개만 먼저)
1. uninit page - 초기화되지 않은 page
2. anonymous page - 초기화 되었으나 file과 연관되지 않은 page
3. file page - 초기화 되었고 file과 연관된 페이지

vm을 코딩하기 위해선 제일먼저 눈에 띄는 것이
spt (supplemental page table) 과 관련된 함수들임
따라서 spt가 무엇인지 알아야함

spt란?

pml4에서 부족한 정보를 채워주기 위한 user vm에 존재하는 table
spt는 아래 정보들을 가지고 있어야함
1. 페이지에 대한 데이터 존재 위치(frame, disk, swap)
2. 위에 대응 되는 커널 가상 주소를 가리키는 정보
3. page와 관련된 추가정보들(ex, active 여부 등)

profile
하루에 집중을

0개의 댓글

관련 채용 정보