CS 공부/OS 운영체제

(OS) 단편화

그린티_ 2025. 5. 11. 16:19
반응형

단편화

  • 메모리를 할당할 때 전체 공간은 남아있지만 효율적으로 사용하지 못해서 사용할 수 없는 공간이
  • 생기는 것을 말함!
  • 운영체자가 메모리를 남겨줄 때 생기는 남는 공간을 뜻하기도 함
  • 메모리 낭비를 일으켜 성능 저하의 원인이 됨

📌 외부 단편화 (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