PintOS 가상 메모리 주간이 밝았다.
본격적인 코드 분석에 앞서, 본 주차를 진행하는데 필요한 기본 지식에 대한 키워드 정리부터 진행하겠다.
주요 키워드 간략 설명
- Virtual Memory
- 실제 물리 메모리보다 더 큰 메모리를 사용하는 것처럼 보이도록 설계된 메모리 관리 기술.
- 물리적 메모리와 디스크 공간을 조합하여 프로세스마다 독립적인 메모리 공간을 제공.
- 페이지 단위로 관리되며, 효율성과 보안을 강화.
- Page Table
- 가상 주소를 물리 주소로 변환하기 위해 사용하는 데이터 구조.
- 각 페이지의 가상 주소가 물리 메모리에서 어디에 매핑되는지 기록.
- TLB 미스가 발생할 때 참조됨.
- Translation Lookaside Buffer (TLB)
- 자주 참조되는 페이지 테이블 엔트리를 저장하는 캐시 메모리.
- 메모리 접근 속도를 높이기 위해 사용.
- TLB 미스가 발생하면 페이지 테이블을 탐색.
- Page Fault
- 프로세스가 접근하려는 페이지가 물리 메모리에 없는 경우 발생하는 예외.
- 운영 체제가 해당 페이지를 디스크에서 로드하여 처리.
- 심각한 성능 저하를 방지하기 위해 최소화해야 함.
- Lazy Loading
- 필요한 시점에 데이터나 리소스를 로드하는 전략.
- 초기 로딩 시간을 단축시키고 메모리 사용량을 효율적으로 관리.
- 페이지 페칭에서도 활용.
- Page Replacement Policy
- 물리 메모리가 가득 찬 경우 어떤 페이지를 교체할지 결정하는 알고리즘.
- FIFO, LRU, LFU 등의 알고리즘이 사용됨.
- 성능과 효율성에 직접적인 영향을 미침.
- Anonymous Page
- 특정 파일과 연결되지 않은 페이지.
- 주로 힙이나 스택과 같은 프로그램 데이터 저장에 사용됨.
- 디스크 스왑 영역을 사용해 관리.
- Swap Disk
- 물리 메모리가 부족할 때 가상 메모리의 데이터를 저장하는 디스크 공간.
- 느리지만 추가 메모리를 제공하는 효과.
- 페이지가 물리 메모리에서 제거되면 스왑 디스크에 저장.
- File-backed Page
- 파일의 내용과 연결된 페이지.
- 파일 매핑 메모리에서 자주 사용됨.
- 필요시 디스크에서 데이터를 로드하거나 저장.
- Direct Memory Access (DMA)
- CPU를 거치지 않고 메모리와 I/O 디바이스 간에 데이터를 직접 전송하는 기술.
- CPU의 부담을 줄이고 데이터 전송 속도를 높임.
- 대용량 데이터 처리에 효과적.