개요
- 메모리의 여유 공간(Fragments)은 프로세스가 물리적 메모리 블록에서 로드되거나 언로드될 때마다 생성된다.
- 데이터 파일이나 실행 가능한 프로그램 파일과 같은 컴퓨터 파일을 하드 디스크나 RAM과 같은 컴퓨터 저장 매체의 여러 부분에 저장되는 조각으로 나누는 프로세스를 Fragmentation이라고 한다.
- 파일이 조각화되면 저장 매체에 연속되지 않은 블록으로 저장된다. 즉, 블록이 서로 옆에 저장되지 않는다.
- 단편화(조각화)는 스토리지 공간이 비효율적으로 사용되어 용량이나 성능, 그리고 종종 두 가지 모두를 감소시키는 현상이다.
- 단편화의 정확한 결과는 사용 중인 저장소 할당 시스템과 단편화 형태에 따라 달라진다.
- 대체로 단편화로 인해 저장 공간이 낭비되며, 이 경우 단편화라는 용어는 낭비된 공간 자체를 의미하기도 한다.
- 프로그램이 시스템에 메모리 블록을 요청할 때 블록은 청크(chunks)로 할당된다.
- 프로그램이 청크 작업을 마치면 해당 청크를 다시 시스템에 해제하여 추후 다른 프로그램이나 동일한 프로그램에 할당할 수 있도록 한다.
- 프로그램이 청크를 보유하는 크기와 시간은 다양하며, 수명(life-cycle) 동안 컴퓨터 프로그램은 많은 메모리 청크를 요청하고 해제할 수 있다.
- 프로그램이 시작되면 여유 메모리 영역은 길고 연속적이지만, 시간이 지남에 따라, 그리고 사용함에 따라 긴 연속 영역은 점점 더 작은 연속 영역으로 단편화된다. (청크의 할당과 해제로 인해)
- 단편화에는 외부 단편화, 내부 단편화, 데이터 단편화가 있다.
원인
- 이는 파일이 너무 커서 저장 매체의 단일 연속 여유 공간 블록에 맞지 않거나 매체의 여유 공간 블록이 파일을 보관하기에 부족한 경우 발생할 수 있다.
- 시스템은 파일을 열기 위해 여러 위치에서 개별 조각을 검색하고 검색해야 하기 때문에 조각화로 인해 파일을 읽거나 액세스할 때 문제가 발생할 수 있다.
효과
- 이로 인해 시스템 성능이 저하되고 파일에 액세스하기가 더 어려워질 수 있다.
- 일반적으로 하드 디스크 조각 모음을 정기적으로 수행하여 조각화를 방지하는 것이 가장 좋다.
- 조각화는 파일이 인접한 블록에 저장되고 더 빠르게 액세스할 수 있도록 디스크의 데이터 블록을 다시 정렬하는 프로세스이다.
외부 단편화(External Fragmentation)