Pintos - Project3 WIL

이후띵·2022년 1월 25일
0

PintOS

목록 보기
29/31

Project 3 : Virtual Memory


Part 1 : Memory Management

Part 2 : Anonymous Page & Lazy Loading(Demanding Page)

Part 3 : Stack Growth

Part 4 : Memory Mapped Files(File Backed Mapping)

Part 5 : Swap In/Out


Kernel space, 물리메모리와 1대1 매핑임, install page()함수를 통해 커널주소공간의 메모리를 유저주소공간으로 매핑

참고한 블로그 : 정리왕 DK
https://sunset-asparagus-5c5.notion.site/Step-1-Supplemental-Page-Table-73078ee7fb9c4d90be0e9a9689d4dd15

Part 1 : Memory Management

  • Supplemental Page Table 구현
    - pml4를 보완
    • page fault시에 오류발생한 가상페이지를 조회하여 어떤 데이터가 있어야하는지 확인
    • 프로세스가 종료될 때 참조하여 어떤 자원을 free시킬 것인지 결정
  • Physical Frames 구현
    - 프레임의 정보를 갖고있는 frame table을 구현.
    • Swap In/Out해야됨.

    Part 2 : Anonymous Page & Lazy Loading(Demand Paging)

  • Anonymous Page 구현
    - file-backed page와 달리 메모리가 프로세스 자체에 의해 런타임 때 만들어지고 사용되는 경우.
  • Lazy Loding 구현
    - Demand Paging : 필요할 때 디스크에서 물리메모리에 올림.
    • Bogus Page Fault
    • 물리메모리가 꽉차있으면 프레임 퇴거 정책(Eviction - Anon Swap in/Out) 해야한다.

Part 3 : Stack Growth

  • Page Fault 발생하고 Stack이 부족해서 발생한 Page Fault 일 때 스택을 키운다.

Part 4 : Memory Mapped Files(File Backed Mapping)

Part 5 : Swap In/Out

profile
이후띵's 개발일지

0개의 댓글