본문 바로가기
2️⃣ 개발 지식 B+/OS

[PintOS 3-1] Memory Management

by ddubbu 2024. 10. 14.

KAIST PintOS gitbook guide

In order to support your virtual memory system,
you need to effectively manage virtual pages and physical frames

 

이번 과제에서는 복잡한 페이지 처리에 필요한 정보를 담는 자료구조 supplemental page table, frame table를 정의

 

[궁금증]

  • Q. 그럼, PTE present bit로는 부족해서 SPT swap 여부를 저장하는 이유가 뭐야?
  • A. PTE는 페이지가 물리 메모리에 있는지, 없는지 정보만 제공. OS는 페이지가 스왑 영역에 있을 경우 위치 정보 등의 메타 데이터가 필요

 [주의사항]

  • PML4는 HW / SPT, Frame Page Table는 OS SW가 메모리 관리 작업을 수행하기 위한 메타 데이터
  • PML4 업데이트 시, OS가 관리하는 (page, frame) 자료구조 데이터도 함께 업데이트 되어야한다.

 

Supplemental Page Table

  • [정의] 각 쓰레드
  • [자료 구조] struct hash : 조회가 빈번함, O(M) 기대; M = #buckets
  • [용도] 가상주소 공간 상태 기록 및 handle page fault
  • [to find what/where data be there]
    할당 되어있는지
    파일에서 lazy load 해야할지
    swap 여부

 

Frame Table

  • [정의] 글로벌 변수
  • [자료구조] struct list : 삽입/삭제 연산 빈번, 교체 알고리즘 구현 시 편의성
  • [용도]
    Manages frames for user programs
    Eviction

 

Swap Table

  • TODO: Project 3-4에서 재개 예정