[06.12/TIL]PintOS를 통해 배운 OS 개념 총정리(Week12-VM)

CHO WanGi·2025년 6월 12일

KRAFTON JUNGLE 8th

목록 보기
70/89

Virtual Memory

가상 메모리는 프로그램이 혼자서 메모리를 다 쓰는 것 처럼 메모리를 가상화한 것을 말한다.
이를 통해서 물리적으로 사용 가능한 메모리보다 더 큰 공간을 제공할 수 있다.

이 가상 메모리의 주소 공간은 Page라는 일정한 크기로 분할되어 있으며,
만약 프로세스가 이 Virtual Address에 접근하여

Page Table

페이지 테이블은 가상 주소를 물리주소로 변환해주는 테이블이다.
자세히 이야기하면 VPN(Virtual Page Number)를 PFN(Physicl Frame Number)로 매핑하는
표를 Page Table이라고 한다.

OS로 부터 관리되며, MMU가 접근해서 읽는다.
이때 각 Page Table의 원소 하나하나를 Page Table Entry(PTE)라고 한다.

PintOS에선 가상 Page를 물리 Frame으로 변경할 때 활용했으며
pml4가 하드웨어의 페이지 테이블이었고, 이 테이블만으로는 부족해서
SPT를 추가로 구현하여 보완했었다.

TLB(Translation Lookaside Buffer)

가상 메모리의 주소를 물리 메모리의 주소로 번역하기 위해 사용하는 캐시 이다.
즉 자주 사용되는 주소 변환 정보를 담는 캐시 메모리이다.

  • TLB Hit
    TLB에 원하는 주소 변환 정보가 있다면 굳이 Page Table에 접근하지 않고도
    빠르게 물리적 주소를 얻을 수 있어서 성능 향상이 가능하다

  • TLB Miss
    만약 TLB에 원하는 주소 정보가 없다면 페이지 테이블을 조회하게 되고,
    이 정보를 TLB에 업데이트하게 된다.

Lazy Loading

Lazy Loading은 전체 다 메모리로 올리는게 아니라 필요할때,
핀토스에서 Lazy Loading의 목적은 실행파일을 로드할때 불필요한 디스크 접근을 줄이기 위해 구현하는 것.

이걸 리액트에서는 사용자가 보지 않는 것을 당장 로딩하지 않는 방식으로 응용 가능하다.

Page Replacement Policy

FIFO

가장 먼저 들어간 페이지를 먼저 삭제

LRU(Least Recently Used)

오랫동안 사용하지 않았다면 앞으로도 사용하지 않겠다는, 지역성을 기반으로 한 아이디어.

LFU(Least Frequently Used)

가장 적게 사용한 페이지를 교체

OPT(OPTimal Page Replacement)

미래를 예측해서 앞으로 사용하지 않을 페이지를 내린다.
근데 우리가 미래를 예측할 수가 없기에... 현실성이 없다.

Anonymous Page

PintOS Anonymous Page 구현은 여기로!
https://velog.io/@false90/TIL06.06PintOS-VM-Anonymous-Page

프로세스가 커널로부터 할당 받은 일반적인 메모리 페이지.
즉 Heap 을 거치지 않고 할당 받은 공간.

Stack, BSS 영역과 매핑된 빨강, 주황색 페이지가 바로 Anonymous Page.
즉 지정된 파일 소스가 없기 때문에 익명이라고 부른다.

File-backed Page

반면 Disk 영역과 매핑되는 파랑(text), 초록색 영역(Data)이 있는데
이걸 File-backed page 라고 하며 파일 시스템의 특정 파일에 직접 매핑되는 메모리 페이지 이다.

Swap Disk

OS 관점에서 주 메모리인 RAM 이 가득 찼을때 사용되는 보조 저장 공간이다.
프로세스의 메모리 페이지를 임시로 저장하는데 주로 사용된다.

메인 메모리에서 스왑디스크로 가는 것을 Swap in,
스왑 디스크에서 메인 메모리로 불러들이는 것을 Swap out 이라고 한다.

Direct Memory Access

DMA는 컴퓨터 시스템에서 CPU의 개입 없이 메모리와 주변 장치간 데이터를 직접 전송하는 것을 말한다.
이를 통해 CPU의 작업 부하를 줄이고 데이터의 전송 효율을 높일 수 있다.

profile
제 Velog에 오신 모든 분들이 작더라도 인사이트를 얻어가셨으면 좋겠습니다 :)

0개의 댓글