본문 바로가기

Operating System

[OS] 단편화(Fragmentation)란? 내부 단편화와 외부 단편화란?

단편화(Fragmentation)

<정의>

  • 주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간
  • 주기억장치 상에서 빈번하게 기억장소가 할당되고 반납됨에 따라 기억장소들이 조각들로 나누어지는 현상

내부 단편화란?

  • 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남아있는 공간
  • 주기억장치 내 사용자 영역 > 실행 프로그램

내부 단편화

 


외부 단편화란?

  • 주기억장치 내 사용자 영역보다 실행 프로그램이 커서 프로그램이 할당될 수 없어 사용되지 않고 남아있는 공간
  • 주기억장치 내 사용자 영역 < 실행 프로그램

 


단편화의 해결 방법

  • 통합 기법
    • 하나의 작업 완료 후 그 사용 영역이 다른 비어있는 분할 공간과 인접해 있는지 점검하여 만약 인접해 있다면 두 개의 빈 분할 공간을 하나로 통합하여 효율성을 높이는 작업
  • 압축 기법
    •  주기억장치 내 분산되어 있는 단편화된 비어있는 공간들을 통합하여 하나의 커다란 빈 공간을 만드는 작업.
    • 가비지 컬렉션(Garbage Collection) 작업 이라고도 함.
  • 재배치 기법(Relocation)
    • 기억장치 관리에서 Fragmentation을 해결하기 위해 압축을 실행하여 이 과정에서 프로그램의 주소를 새롭게 지정해주는 기법