2025-11-02

오늘 배운 것

📦 단편화(Fragmentation)란?

메모리를 나눠 쓰다 보니, 사용할 수 없는 공간이 생기는 현상


🧩 1. 내부 단편화 (Internal Fragmentation)

✅ 정의

할당된 메모리 블록 안에 사용되지 않고 남는 공간

🔍 왜 생겨?

  • 고정 크기 블록(예: 페이지, 슬롯 등)에 작은 데이터를 넣었을 때
  • 남는 공간은 있지만, 그 블록을 다른 프로세스가 쓸 수 없음

📦 예시

블록 크기 요청 크기 실제 할당 낭비된 공간 (내부 단편화)
64KB 60KB 64KB 4KB 낭비
64KB 33KB 64KB 31KB 낭비
64KB 64KB 64KB 0KB (딱 맞음 ✅)
64KB 65KB ❌ 할당 실패 or 추가 블록 필요  

→ 📌 고정 크기로 딱 떨어지지 않는 요청은 남는 공간이 무조건 생기게 되고

→ 그 “남는 부분”은 다른 프로세스가 쓸 수 없음!


✅ 특징

항목 설명
발생 위치 블록 내부
주로 발생하는 곳 페이징 시스템, 고정 크기 분할
해결법 블록 크기 조정, 동적 할당 구조 (Heap 등)

🧱 2. 외부 단편화 (External Fragmentation)

✅ 정의

메모리 전체에는 빈 공간이 충분하지만,

연속된 큰 공간이 없어서 할당 못 하는 현상

🔍 왜 생겨?

  • 메모리를 가변 크기로 분할하다 보니,
  • 프로세스 종료 시 중간중간 빈틈이 생김

    → 그 공간이 합쳐지지 않으면 새로운 요청 못 받음!

📦 예시

[100KB][50KB][20KB][80KB]

→ 150KB 요청이 들어와도
→ 연속된 공간이 없어서 ❌ 할당 실패

✅ 특징

항목 설명
발생 위치 메모리 전체 공간 사이사이
주로 발생하는 곳 세그멘테이션, 가변 분할 방식
해결법 Compaction (압축), 페이징 도입

results matching ""

    No results matching ""