다섯 살도 알 수 있게 · 시스템SW

가상메모리·페이징이 뭐예요?

가상메모리와 페이징을, 창고 전체를 내 전용 공간처럼 보여주는 가짜 지도 이야기로 풀어봤어요.

P0P1P2P3P4P5내 선반인데, P3 칸을 열어보니 비어 있어요분명 "내 선반"이라고 들었는데, 실제로 다 차 있진 않아요

내 선반인데, 한 칸을 열어보니 비어 있어요."내 선반"이라고 들었는데, 실제로 다 차 있진 않아요.

정비사1 전용정비사2 전용모두에게 진짜 창고를 통째로 하나씩 줄 순 없어요정비사가 늘어날수록 진짜 선반 공간은 금방 부족해져요

모두에게 진짜 창고를 통째로 줄 순 없어요.정비사가 늘수록 진짜 선반 공간은 금방 부족해져요.

P0P1P2내가 보는 선반(가상)F0F1진짜 선반(물리)디스크가상메모리 = 창고 전체를 내 것처럼 보여주는 가짜 지도지도의 각 칸(페이지)이 실제 선반 칸(프레임)을 가리켜요, 없으면 디스크에서 가져와요

가상메모리 = 창고 전체를 내 것처럼 보여주는 가짜 지도예요.지도의 각 칸(페이지)이 실제 선반 칸(프레임)을 가리켜요.

가상 주소내가 보는 가짜 지도 번지
페이지지도를 자른 작은 칸 하나
페이지 테이블가상 칸 ↔ 진짜 칸 대응표
페이지 폴트없으면 디스크에서 불러와요
페이지 테이블P0 → F0P1 → F1P2 → 디스크에(폴트)반장(OS)이 이 지도를 관리해요P2를 찾으면 "페이지 폴트" — 디스크에서 선반으로 올려와요

페이지 테이블이 가상 페이지를 실제 프레임에 연결해요.P2를 찾으면 "페이지 폴트" — 디스크에서 올려와요.

딱 맞게 올라와 있어요필요한 칸이 선반에 다 있으면빠르게 일해요계속 들락날락칸이 디스크를 너무 자주 오가면스와핑 때문에 오히려 느려요가상메모리는 '더 많아 보이게'는 해도, 진짜 선반 속도를 늘려주진 않아요

칸이 선반과 디스크를 너무 자주 오가면 오히려 느려져요.가상메모리는 '더 많아 보이게'는 해도, 진짜 선반 속도를 늘려주진 않아요.

한 줄로

가상메모리 = 창고(메모리)가 작아도 모두에게 전용 창고처럼 보이는 가짜 지도를 주고, 페이지 단위로 필요한 것만 실제 선반에 올리는 방법.

가상메모리는 프로세스마다 독립된 가상 주소 공간을 주어, 물리 메모리보다 커 보이게 하고 프로세스끼리 서로의 메모리를 침범하지 못하게 해요. 페이징은 가상/물리 메모리를 고정 크기 페이지로 나눠 페이지 테이블로 매핑하고, 필요한 페이지가 물리 메모리에 없으면 페이지 폴트가 나서 디스크(스왑 영역)에서 가져와요. 폴트가 너무 잦으면 스래싱(thrashing)이 일어나 전체 성능이 떨어져요.

어른들은 이렇게 불러요

가상 주소
Virtual Address
내가 보는 가짜 지도의 번지. 진짜 선반 위치가 바뀌어도 이 번지는 그대로예요.
페이지/프레임
Page/Frame
지도의 칸(페이지)과 진짜 선반 칸(프레임). 페이지와 프레임은 같은 크기로 잘라서 맞춰요. 쓰임새대로 자르는 방식과의 비교 → 선반을 똑같이 자를까, 쓰임새대로 자를까
페이지 테이블
Page Table
가상 칸과 진짜 칸의 대응표. 반장(OS)이 관리해요.
페이지 폴트/스와핑
Page Fault/Swapping
찾는 칸이 없어 디스크에서 올려오는 일. 너무 잦으면 스래싱으로 느려져요.
캐시 메모리
Cache Memory
자주 쓰는 공구만 담는 작은 공구함. 더 빠른 층위의 '가까운 저장공간'이에요. → 바로 옆에 놓아둔 공구함
프로세스
Process
독립된 차 한 대, 독립된 메모리 공간. 가상 주소 공간은 프로세스마다 따로 가져요. → 같은 차, 여러 손
교착상태
Deadlock
서로의 열쇠를 기다리며 영원히 멈춤. 자원이 한정된 건 메모리도 리프트도 마찬가지예요. → 서로의 열쇠를 기다리며 멈춘 정비공장
복잡도(Big-O)
Time Complexity
칸 수가 늘 때 찾는 시간이 느는 정도. 페이지 테이블 조회 비용도 이 자로 재요. → 차가 많아질 때 얼마나 느려질까
다음 이야기
서로의 열쇠를 기다리며 멈춘 정비공장 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →