. [PintOS, Project 3] Anonymous Page
본문 바로가기
Pintos Project/Project 3

[PintOS, Project 3] Anonymous Page

by 불냥이_ 2021. 2. 23.

spt


spt copy
- src에서 dst로 spt 복사
- fork()할 때 사용한다.
- Iteration 사용
- uninit page를 만들고 즉시 claim까지 해야한다. 
  -> 기존의 (lazy안하고 남아있던) uninit을 복사하는 것인가? 아니면 새 프로세스가 가져야할 전체 page를 하는 것인가? 


spt kill
 - spt가 들고있는 모든 자원을 free한다.
 - process_exit()할 때, 이 함수가 호출된다.
 - pag entry를 itration으로 destroy한다. 
 - pml4랑 물리 메모리는 고려안해도 된다. 


Page Cleanup
uninit_destory랑 anon_destroy를 시행한다. uninit 페이지가 다른 page obj로 변했더라도, type은 uninit일 가능성이 있다.

uninit_destroy
 - page가 들고있는 자원을 반환한다. vm type을 체크하고 그에 맞게 다뤄야 할 수 있다.
 - 현재는 anony page만 다룬다. 나중에 file-backed page도 clean up 할 수 있게 해야한다.

anon_destory
 - anony page가 들고있는 자원을 반환한다. page를 free()할 필요가 없다. (호출자가 할 것이다.)

'Pintos Project > Project 3' 카테고리의 다른 글

[PintOS, Project3] Memory Mapped Files  (0) 2021.02.25
[PintOS, Project 3] Stack Growth  (0) 2021.02.23
[PintOS, Project 3] Hash Table  (0) 2021.02.19

댓글