📑 목차
메모리가 부족할 때 컴퓨터 안에서는 무슨 일이 일어날까
컴퓨터를 사용하다 보면 어느 순간부터 창이 잘 안 열리거나, 프로그램 전환 속도가 눈에 띄게 느려지는 순간이 찾아온다. 작업 관리자나 상태 표시줄을 보면 “메모리 부족”, “디스크 사용률 100%” 같은 메시지가 뜨는 경우도 있다. 이때 많은 사용자는 단순히 “컴퓨터가 오래돼서 그렇다”라고 생각하지만, 내부에서는 가상 메모리, 페이지 교체, 페이지 폴트와 같은 운영체제의 복잡한 메모리 관리 기법이 동작하고 있다.
현대 운영체제는 실제 메모리(RAM)가 한정된 상황에서도 여러 프로그램을 동시에 실행하기 위해 가상 메모리와 페이지 교체 기법을 사용한다. 이 덕분에 물리적으로 8GB RAM만 있어도 마치 그보다 훨씬 큰 메모리를 가진 것처럼 프로그램을 실행할 수 있다. 그러나 이 기술이 잘못 사용되거나 한계를 넘어서면, 컴퓨터가 극도로 느려지는 현상도 함께 나타난다.
이 글에서는 전산학 비전공자도 이해할 수 있도록 가상 메모리, 페이지 교체, 메모리 부족, 운영체제, 페이지 폴트를 핵심 키워드로 삼아,
- 가상 메모리가 무엇인지,
- 메모리가 부족할 때 운영체제가 어떤 방식으로 페이지 교체를 수행하는지,
- 그 과정에서 왜 컴퓨터가 심하게 느려지는지,
- 사용자가 실제로 할 수 있는 대처 방법은 무엇인지
를 단계적으로 설명한다.
가상 메모리와 페이지 단위 관리의 기본 개념
1. 물리 메모리와 가상 메모리의 차이
먼저 물리 메모리(RAM)와 가상 메모리(Virtual Memory) 개념을 구분할 필요가 있다.
- 물리 메모리(RAM)
- 실제로 컴퓨터 안에 장착된 메모리 모듈의 용량이다.
- 예를 들어 “8GB RAM”, “16GB RAM”처럼 표시된다.
- CPU가 직접 접근해 데이터를 읽고 쓰는 고속 작업 공간이다.
- 가상 메모리(Virtual Memory)
- 운영체제가 각 프로그램(프로세스)에게 “논리적으로 보이는 주소 공간”을 제공하는 기술이다.
- 실제 RAM 용량과 상관없이, 각 프로세스는 “매우 큰 메모리 공간을 가진 것처럼” 보게 된다.
- 부족한 부분은 SSD/HDD와 같은 저장장치 일부를 스왑 영역(페이지 파일)로 활용하여 보완한다.
운영체제는 CPU가 사용하는 주소를 그대로 물리 RAM에 연결하지 않고,
- 먼저 가상 주소 공간에서 주소를 받는다.
- 이 주소를 내부 테이블을 통해 물리 메모리 주소 또는 디스크의 스왑 영역 위치로 변환한다.
이 덕분에, 실제 물리 메모리가 8GB인 시스템에서도 여러 프로그램이 합쳐서 12GB, 16GB 수준의 메모리 공간을 사용하는 것처럼 보일 수 있다. 물론, 그 모든 데이터를 동시에 RAM에 올려둘 수는 없기 때문에 여기서 페이지 단위 관리와 페이지 교체가 필요해진다.

2. 페이지와 프레임: 메모리를 잘게 나누어 관리하는 이유
가상 메모리와 물리 메모리를 효율적으로 관리하기 위해, 운영체제는 메모리를 작은 고정 크기 단위로 나눈다. 이때 사용하는 개념이 페이지(Page)와 프레임(Frame)이다.
- 페이지(Page)
- 가상 메모리에서의 최소 관리 단위이다.
- 보통 4KB, 8KB 등 정해진 크기를 가진다.
- 프로세스 입장에서 보면 “내 메모리 공간이 일정 크기의 페이지 블록들로 나누어져 있다”라고 볼 수 있다.
- 프레임(Frame)
- 물리 메모리(RAM)에서 페이지를 담는 그릇 역할을 하는 블록이다.
- 페이지와 동일한 크기를 가진다.
- RAM은 여러 개의 프레임으로 나누어져 있고, 각 프레임에는 특정 프로세스의 페이지 하나가 들어간다.
운영체제는 페이지 테이블(Page Table)이라는 구조를 사용하여,
- “가상 메모리의 n번째 페이지가 물리 메모리의 어느 프레임에 있는지”
- 혹은 “현재 RAM에는 없고, 디스크 스왑 영역의 어느 위치에 저장되어 있는지”
를 기록한다.
CPU가 어떤 주소에 접근하려고 하면, 내부적으로는
- 해당 주소가 포함된 가상 페이지 번호를 계산하고,
- 페이지 테이블을 참조하여 물리 프레임 번호 또는 디스크 위치를 찾은 뒤,
- 그 결과에 따라 RAM 또는 디스크에서 데이터를 가져온다.
3. 페이지 폴트(Page Fault)란 무엇인가
가상 메모리 시스템에서 중요한 개념이 페이지 폴트(Page Fault)이다.
- CPU가 어떤 가상 주소의 데이터를 읽으려고 했는데,
- 그 주소가 속한 페이지가 현재 물리 메모리(RAM)에 없는 경우를 말한다.
이때 운영체제는 다음과 같은 순서로 처리한다.
- 페이지 폴트 발생을 감지한다.
- 해당 페이지가 디스크 스왑 영역에 있는지 확인한다.
- RAM 안에서 비워도 될 프레임을 하나 선택한다. (이때 페이지 교체 알고리즘이 사용된다.)
- 선택된 프레임의 기존 내용을 디스크에 저장해야 한다면 저장하고,
- 디스크에서 필요한 페이지를 읽어 와 선택한 프레임에 올린 뒤,
- 페이지 테이블을 갱신하고,
- CPU가 다시 명령을 실행하도록 한다.
페이지 폴트는 시스템이 정상적으로 가상 메모리를 운용하는 과정에서 자연스럽게 발생하는 현상이다. 다만, 너무 자주 발생하면 디스크 입출력이 급격히 늘어나 성능이 심각하게 떨어지는 상황으로 이어질 수 있다. 이것이 본론2에서 다룰 페이지 교체와 메모리 부족 시의 현상과 직결된다.
메모리 부족 상황에서 페이지 교체가 만드는 현상과 대처 방법
1. 페이지 교체 알고리즘: 어떤 페이지를 내보낼 것인가
물리 메모리(RAM)의 크기는 제한되어 있다. 실행 중인 여러 프로세스가 동시에 많은 페이지를 필요로 하면, 언젠가는 “더 이상 RAM에 올릴 빈 프레임이 없는 상황”이 발생한다. 이때 운영체제는 페이지 교체(Page Replacement)를 수행해야 한다.
페이지 교체의 핵심 질문은 하나이다.
“새로운 페이지를 RAM에 올리기 위해, 지금 RAM에 있는 페이지 중 어떤 것을 내보낼 것인가?”
이를 결정하는 규칙이 페이지 교체 알고리즘이다. 대표적인 개념만 간단히 정리하면 다음과 같다.
- FIFO (First-In, First-Out)
- 가장 먼저 들어온 페이지를 가장 먼저 내보내는 방식이다.
- 구현이 단순하지만, 항상 좋은 선택은 아니다.
- 오래 있었지만 여전히 자주 사용되는 페이지를 쫓아내는 문제가 생길 수 있다.
- LRU (Least Recently Used)
- “가장 오랫동안 사용되지 않은 페이지”를 내보내는 방식이다.
- 시간 지역성(최근 사용한 데이터는 또 사용할 가능성이 높음)을 잘 반영한다.
- 이론적으로 성능이 좋은 편이지만, 정확한 LRU 구현은 비용이 크기 때문에 현실에서는 근사 방식으로 구현한다.
- LFU, Clock 등 기타 알고리즘
- “사용 빈도가 가장 낮은 페이지”를 쫓아내는 방식(LFU)이나,
- 시계 방향으로 페이지를 돌며 교체 후보를 찾는 Clock 알고리즘 등 다양한 변형이 있다.
운영체제는 이러한 알고리즘을 사용해 “가장 덜 아플 선택”을 하려고 노력한다.
그러나 근본적으로 물리 메모리가 부족한 상황에서는 어떤 페이지를 내보내더라도 페이지 폴트와 디스크 입출력이 늘어날 수밖에 없다.

2. 메모리 부족과 스래싱(Thrashing): 왜 컴퓨터가 극도로 느려지는가
실제 사용 환경에서 메모리 부족이 심해지면, 스래싱(Thrashing)이라는 현상이 발생할 수 있다. 스래싱은
- CPU가 실제로 프로그램 코드를 실행하는 시간보다,
- 필요한 페이지를 디스크에서 가져오고 내보내는 데 쓰는 시간이 더 많아지는 상태를 말한다.
이때 사용자가 느끼는 증상은 다음과 같다.
- 창을 전환할 때마다 수 초 이상 멈춘 것처럼 보인다.
- 마우스 포인터는 움직이지만, 클릭 반응이 거의 없다.
- 작업 관리자에서 디스크 사용률이 100%에 가깝게 유지된다.
- 메모리 사용률도 매우 높으며, 가상 메모리(페이지 파일) 사용량이 크게 늘어난다.
이 현상은 가상 메모리와 페이지 교체 자체가 잘못된 기술이어서가 아니라,
- 물리 메모리 용량이 현재 실행 중인 프로그램들의 요구량에 비해 지나치게 부족하고,
- 동시에 많은 프로그램을 켜 두었기 때문에
운영체제가 어쩔 수 없이 계속 페이지 교체를 반복하는 상황 때문에 발생한다.
3. 실제 사례로 보는 가상 메모리와 페이지 교체
일반적인 사용 환경에서 자주 볼 수 있는 사례를 몇 가지 들어 보자.
- 브라우저 탭을 매우 많이 열어 둔 상황
- 각 탭은 독립된 프로세스 또는 프로세스 안의 메모리를 차지한다.
- 탭마다 웹 페이지 코드, 이미지, 스크립트 등이 메모리에 올라간다.
- RAM 용량이 한계에 가까워지면, 오래 보지 않은 탭의 페이지들이 디스크로 쫓겨난다.
- 다시 해당 탭을 클릭할 때마다 페이지 폴트가 발생하고, 디스크에서 페이지를 다시 읽어오느라 탭 전환이 느려진다.
- 사진·영상 편집 프로그램과 여러 유틸리티 동시 실행
- 영상 편집 프로그램은 대용량 데이터를 메모리에 많이 올리는 경향이 있다.
- 동시에 메신저, 브라우저, 클라우드 동기화 프로그램 등을 다 켜 두면 전체 메모리 사용량이 급격히 늘어난다.
- 이때 페이지 교체가 빈번하게 일어나면서, 타임라인 이동이나 재생 미리보기 같은 작업이 버벅일 수 있다.
- RAM이 적은 구형 노트북에서 최신 소프트웨어 사용
- 예를 들어 4GB RAM 노트북에서 최신 브라우저와 사무용 프로그램, 화상 회의 프로그램을 동시에 실행하면
- 물리 메모리가 빠르게 포화 상태가 된다.
- 가상 메모리 의존도가 높아지고, SSD/HDD의 디스크 액세스가 급격히 늘어난다.
이 모든 경우의 공통점은 운영체제가 가용 메모리를 늘리기 위해 페이지 교체를 적극적으로 수행하다 보니, 오히려 디스크 입출력이 병목이 되어 전체 시스템이 느려진다는 점이다.
4. 사용자가 할 수 있는 현실적인 대처 방법
가상 메모리와 페이지 교체는 운영체제 내부의 기술이므로, 사용자가 직접 알고리즘을 바꾸거나 동작 방식을 조정할 수는 없다. 그러나 메모리 부족 상황 자체를 줄이는 방향으로는 여러 가지 실질적인 조치를 취할 수 있다.
- 동시에 실행하는 프로그램 수 줄이기
- 사용하지 않는 프로그램과 브라우저 탭을 주기적으로 닫는다.
- 특히 메모리를 많이 사용하는 브라우저 확장 기능, 무거운 앱은 최소한으로 유지한다.
- RAM(물리 메모리) 증설
- 데스크톱이나 업그레이드 가능한 노트북이라면 RAM을 늘리는 것이 가장 직접적인 해결책이다.
- 예를 들어 4GB에서 8GB, 8GB에서 16GB로 늘리면, 페이지 교체 빈도가 크게 줄어드는 경우가 많다.
- SSD 사용하기
- 가상 메모리와 페이지 교체는 디스크 속도에 크게 의존한다.
- HDD보다 SSD가 훨씬 빠르기 때문에, 동일한 가상 메모리 사용량이라도 SSD 환경에서 체감 속도가 덜 떨어진다.
- 단, SSD라고 해서 메모리 부족 문제가 사라지는 것은 아니며, “덜 느려질 뿐”이라는 점을 이해할 필요가 있다.
- 가상 메모리(페이지 파일) 설정을 무리하게 줄이지 않기
- 일부 사용자는 SSD 수명 또는 성능을 이유로 가상 메모리를 끄거나 지나치게 줄이기도 한다.
- 그러나 물리 메모리가 충분하지 않은 상황에서 가상 메모리를 없애면, 프로그램이 갑자기 종료되거나 오류가 발생할 위험이 커진다.
- 운영체제가 기본값으로 관리하도록 두거나, 권장 범위 안에서만 조정하는 것이 안전하다.
- 백그라운드 프로그램 관리
- 자동 실행되는 프로그램(메신저, 클라우드, 런처, 업데이트 도구 등)을 정리한다.
- 시작 프로그램 목록에서 꼭 필요한 항목만 남기면, 부팅 직후 메모리 부담을 줄일 수 있다.
5. 주의할 점: 가상 메모리는 “메모리를 마법처럼 늘리는 기술”이 아니다
마지막으로, 가상 메모리와 페이지 교체에 대한 오해를 짚고 넘어갈 필요가 있다.
- 가상 메모리는 물리 메모리를 완전히 대체하는 기술이 아니라, 부족한 상황을 완화하는 완충 장치이다.
- 디스크(특히 HDD)는 RAM보다 훨씬 느리기 때문에,
- 가상 메모리 사용량이 많아질수록 체감 성능은 떨어질 수밖에 없다.
- “가상 메모리 크기를 크게 잡으면 RAM을 안 늘려도 된다”라는 생각은 잘못된 기대이다.
- 일정 수준 이상에서는, 가상 메모리 증가보다 RAM 증설이 훨씬 효율적인 해결책이다.
즉, 가상 메모리와 페이지 교체는 운영체제가 시스템을 안정적으로 유지하기 위해 사용하는 필수 기술이지만,
- 사용자의 입장에서는 물리 메모리 용량과 프로그램 사용 습관이 가장 중요한 기본 조건이라는 점을 함께 기억해야 한다.
가상 메모리와 페이지 교체를 이해하면 “느려짐”의 이유가 보인다
이 글에서는 가상 메모리와 페이지 교체를 중심으로, 메모리가 부족할 때 컴퓨터 안에서 벌어지는 일을 정리하였다. 주요 내용을 다시 요약하면 다음과 같다.
- 가상 메모리는 물리 메모리 한계를 보완하기 위한 운영체제 기술이다.
- 각 프로세스에 큰 가상 주소 공간을 제공하고,
- 실제로 필요한 부분만 페이지 단위로 RAM에 올린다.
- 페이지와 프레임, 페이지 테이블은 가상 메모리 관리의 기본 단위이다.
- 가상 메모리는 페이지, 물리 메모리는 프레임으로 나누어 관리된다.
- 페이지 테이블이 두 공간 사이의 매핑 정보를 유지한다.
- 페이지 폴트와 페이지 교체는 정상적인 동작이지만, 과도하면 성능 저하를 유발한다.
- 페이지 폴트는 필요한 페이지가 RAM에 없을 때 발생한다.
- 페이지 교체 알고리즘(FIFO, LRU 등)은 어떤 페이지를 내보낼지 결정하는 규칙이다.
- 메모리 부족이 심해지면 스래싱이 발생해 컴퓨터가 극도로 느려진다.
- CPU는 실제 작업보다 페이지 교체와 디스크 입출력에 더 많은 시간을 쓰게 된다.
- 브라우저 탭 과다, 무거운 프로그램 다중 실행, RAM 부족이 주된 원인이다.
- 사용자는 프로그램 관리, RAM 증설, SSD 사용, 가상 메모리 기본 설정 유지 등을 통해 상황을 개선할 수 있다.
- 가상 메모리는 만능 해결책이 아니며, 물리 메모리 용량과 사용 습관이 근본적인 요소이다.
이제 “메모리가 부족할 때 왜 컴퓨터가 이렇게 느려지는가”라는 질문에, 단순히 “컴퓨터가 오래돼서 그렇다”가 아니라,
- 운영체제가 가상 메모리와 페이지 교체를 통해 부족한 RAM을 보완하려다 보니 디스크 입출력이 급증하고,
- 그 결과 체감 속도가 떨어진다는 설명을 할 수 있을 것이다.
다음 단계에서 함께 살펴볼 만한 주제로는 예를 들어 다음과 같은 것들이 있다.
- “스래싱(Thrashing) 현상을 더 자세히 이해하기: 어떤 지점에서 성능이 무너지는가”
- “메모리 계층 구조 전체: 캐시, RAM, 가상 메모리, 저장장치까지 한눈에 보기”
이 주제들을 이어서 학습하면, 전산학에서 중요한 축인 운영체제의 메모리 관리를 더 깊이 있게 이해하고, 실제 PC 사용과 문제 해결에도 직접적으로 활용할 수 있을 것이다.
'전산학' 카테고리의 다른 글
| 파일 시스템의 원리: 우리가 저장하는 파일이 디스크 안에 정리되는 방법 (0) | 2025.12.11 |
|---|---|
| TCP/IP 네트워크 기초: 인터넷에서 데이터가 ‘정확히’ 도착하는 이유 (0) | 2025.12.11 |
| 운영체제(OS)가 하는 일: 부팅부터 프로그램 관리까지 전체 흐름 정리 (0) | 2025.12.11 |
| 프로세스와 스레드: 한 컴퓨터에서 여러 작업이 동시에 돌아가는 원리 (0) | 2025.12.11 |
| 캐시 메모리 구조: CPU 옆 작은 메모리가 체감 속도를 바꾸는 이유 (0) | 2025.12.11 |