반응형
단편화
- 메모리를 할당할 때 전체 공간은 남아있지만 효율적으로 사용하지 못해서 사용할 수 없는 공간이
- 생기는 것을 말함!
- 운영체자가 메모리를 남겨줄 때 생기는 남는 공간을 뜻하기도 함
- 메모리 낭비를 일으켜 성능 저하의 원인이 됨
📌 외부 단편화 (External Fragmentation)

언제 생기나?
- 연속 메모리 할당, 세그멘테이션처럼 다양한 크기의 메모리를 나눠줄 때 발생
- 중간에 프로세스들이 종료되면 애매하게 남는 빈 공간들이 생기게 됨
→ 전체 용량은 충분해도, 연속된 공간이 없으면 큰 프로세스는 못 들어감! - → 각 빈 공간에는 그 크기보다 작거나 같은 프로세스만 들어갈 수 있음
예시
[ 사용 중 200KB ][ 빈 공간 120KB ][ 사용 중 300KB ][ 빈 공간 80KB ]
→ 총 빈 공간: 200KB
→ 하지만 200KB짜리 연속된 공간은 없어!
해결 방법
- 압축(compaction): 메모리 조각들을 모아서 빈 공간을 한 곳에 몰아줌 (시간 소모 큼)
- 단점 : 어느 빈 공간을 기준으로 모을지에 대한 알고리즘도 모호함
- 메모리에 적재된 프로세스를 정지시키고 한쪽으로 이동시키는 작업이 필요해 비효율
📌 내부 단편화 (Internal Fragmentation)

언제 생기나?
- 고정된 크기의 블록을 할당하는 방식(페이징 등)에서 발생
- 프로세스가 블록 전체를 다 안 쓰면 그 남는 부분이 낭비됨
예시
- 페이지 크기: 4KB
- 프로세스가 6.2KB 필요→ 실제 사용은 6.2KB
- → 1.8KB 낭비 → 내부 단편화!
- → 2개 페이지 할당 (8KB)
해결 방법
- 동적 메모리 할당 (Variable-size Allocation)
- 요청한 크기만큼 정확하게 할당하여 낭비 공간을 최소화
- 대표 전략:
- First Fit: 가장 먼저 맞는 빈 공간에 할당
- Best Fit: 가장 작은, 충분한 공간에 할당
- Worst Fit: 가장 큰 빈 공간에 할당
- 내부 단편화는 줄일 수 있지만, 외부 단편화가 발생할 수 있음
반응형
'CS 공부 > OS 운영체제' 카테고리의 다른 글
| (OS) 논리적 주소 vs 물리적 주소 (1) | 2025.05.11 |
|---|---|
| (OS) 스레드 (0) | 2025.05.01 |
| (OS) 프로세스 (3) (0) | 2025.05.01 |
| (OS) 프로세스 (2) (0) | 2025.05.01 |
| (OS) 프로세스 (1) (0) | 2025.05.01 |