개요

Shootdown은 주로 아래 시점에 발생

TLB Shootdown이란?

멀티코어 환경에서 가상메모리 주소 체계를 관리할 때 발생하는 성능 오버헤드 현상을 의미. (TLB 미스로 이해해도되나)

TLB란?

가상 주소(Virtual Address)를 물리 주소(Physical Address)로 변환할 때 메모리의 페이지 테이블을 참조한다. 하지만 메모리 접근은 느리기 때문에, 최근에 변환된 주소 정보를 CPU 내부의 고속 캐시에 저장해 두는데, 이것이 TLB (CPU캐시와 같은 느낌)

IPI(Inter-Processor Interrupt)란?

코어마다 가진 TLB내용을 무효화하는 인터럽트

PTE란?

VA→PA주소록 (프로세스마다 존재)

PFN Entry(MMPFN)란?

물리 메모리 페이지 하나당 하나씩 존재하는 메타데이터

  // MMPFN 핵심 필드 (의사코드)
  struct MMPFN {
      USHORT ShareCount;      // 이 물리 페이지를 가리키는 PTE 개수
      USHORT ReferenceCount;  // 이 물리 페이지를 "잡고있는" 총 횟수
      PageLocation;           // Active / Standby / Modified 등 상태
      // ...
  };

메모리 관리자(Balance Set Manager)가 page-out 후보를 고를 때: if (MMPFN.ReferenceCount > 0) → 건너뜀 (page-out 불가) if (MMPFN.ReferenceCount == 0) → page-out 후보