COMPACTION

압축은 프로세스를 한쪽으로 모아 큰 연속 빈 공간을 만든다

외부 단편화를 줄일 수 있지만, 실행 중인 메모리를 이동해야 하므로 주소 재배치와 복사 비용이 필요하다.

압축 전

0MB
P1실행 중
40MB
Hole 20MB작은 빈 공간
60MB
P2실행 중
130MB
Hole 55MB최대 연속 공간
185MB
P3실행 중
235MB
Hole 10MB끝 빈 공간

압축 후

0MB
P1그대로 또는 이동
40MB
P2낮은 주소로 이동
110MB
P3낮은 주소로 이동
160MB
Hole 85MB하나의 큰 연속 공간
1. 이동 대상 선택 모든 프로세스를 옮길 수도 있고, 필요한 만큼만 옮기는 정책을 쓸 수도 있다.
2. 주소 재배치 실행 시 바인딩과 재배치 정보가 있어야 프로세스를 안전하게 이동할 수 있다.
3. 큰 hole 생성 분산된 빈 공간이 하나로 합쳐져 큰 연속 요청을 처리할 수 있다.
장점 외부 단편화를 직접 줄여 연속 공간을 다시 확보한다.
비용 복사량이 크고, 실행 중 주소 재배치가 필요하다.
근본 해결 페이징은 연속 배치 제약을 없애 외부 단편화를 피한다.

압축은 연속 할당을 계속 쓰기 위한 응급 처치에 가깝다. 현대 OS가 페이징을 쓰는 이유는 이 제약 자체를 없애기 위해서다.