오늘은 운영체제에서 메모리를 어떻게 관리하는지, 특히 연속 메모리 할당 방식의 한계와 그로 인해 등장한 페이징 기법에 대해 간단히 정리해보겠습니다.
1. 연속 메모리 할당이란?

연속 메모리 할당은 프로세스 하나에 연속적인 메모리 공간을 할당하는 방식입니다.
쉽게 말해, 프로그램이 메모리에 올라갈 때 하나의 '덩어리'로 붙여서 배치하는 방식이죠.
1️⃣ 장점
- 단순하고 관리가 쉽다.
- 주소 계산이 직관적이다.
2️⃣ 단점
- 메모리를 효율적으로 사용하기 어렵다.
2. 외부 단편화(External Fragmentation)의 발생

연속 메모리 할당을 사용하면 시간이 지나며 메모리에는 여러 크기의 빈 공간(holes) 이 생기게 됩니다.
예를 들어,
- 빈 공간이 30MB + 20MB 이렇게 떨어져 있어도
- 새로운 프로세스가 50MB 필요하다면,
- 두 공간을 합친 50MB가 있음에도 불구하고 배치할 수 없습니다.
왜냐하면 연속 메모리 할당 방식에서는 연속된 공간이 필요하기 때문이죠.
👉 이런 상황을 외부 단편화라고 부릅니다.
결국 메모리가 남아 있어도 쓸 수 없기 때문에 **낭비(memory waste)**가 발생합니다.
3. 외부 단편화가 반복되면 생기는 문제
프로세스가 생성·삭제를 반복할수록 메모리 사이에 자잘한 틈새 공간이 생깁니다.
- 이 틈새 공간들은 크기가 제각각이라
- 그보다 큰 프로세스를 적재하기 어려워지고
- 시간이 지날수록 메모리 활용률은 떨어집니다.
즉, 프로그램은 실행할 수 있음에도 불구하고
메모리 구조의 비효율성 때문에 실행하지 못하는 상황이 발생할 수 있다는 의미입니다.
4. 연속 메모리 할당의 두 가지 핵심 문제

1️⃣ 외부 단편화 발생 → 사용 가능한 공간이 산재되어 효율이 떨어짐
2️⃣ 큰 프로세스 적재 불가
- 예를 들어 메모리가 4GB 있어도,
- 연속된 공간이 아니라면 4GB짜리 프로그램은 올릴 수 없음
이 두 문제는 운영체제에게 큰 골칫거리였습니다.
5. 그래서 등장한 해결책, 페이징(Paging)
이징은 메모리를 일정한 크기의 조각(페이지) 으로 나누어 사용하는 방식입니다.
핵심 아이디어는 아주 간단합니다.
“연속된 공간이 없어도, 조각조각 나눠서 메모리에 넣으면 되잖아?”
- 프로세스를 여러 페이지로 쪼개고
- 남아 있는 빈 공간 아무 데나 페이지 단위로 올립니다
- 덕분에 연속된 메모리 공간이 없어도 큰 프로그램 실행 가능
페이징의 장점
- 외부 단편화가 사라진다
- 메모리 활용 효율 상승
- 물리 메모리보다 큰 프로그램도 실행 가능 (가상 메모리를 활용하면 더 확장됨)
정리하면
| 개념 | 설명 |
| 연속 메모리 할당 | 프로세스에 연속된 메모리 공간을 부여하는 방식 |
| 외부 단편화 | 빈 공강은 있지만 연속되지 않아 사용하지 못하는 문제 |
| 페이징 | 메모리를 페이지 단위로 분할하여 외부 단편화를 해결하는 방식 |
연속 메모리 할당은 단순하지만 비효율이 많고, 이를 해결하기 위해 운영체제는 페이징 기반의 메모리 관리 방식을 채택해왔습니다.
'컴퓨터 과학' 카테고리의 다른 글
| [자료구조] 배열 (0) | 2025.12.07 |
|---|---|
| [운영체제] 가상 메모리 - 내부 단편화 (0) | 2025.12.01 |
| [운영체제] 가상 메모리 - 물리 주소와 논리 주소 & 스와핑 (0) | 2025.11.30 |
| [운영체제] CPU 스케줄링 - CPU 활용률 (0) | 2025.11.30 |
| [운영체제] 동기화와 교착 상태 - 조건 변수와 모니터 (0) | 2025.11.29 |