운영체제
단편화
정재익
2025. 7. 24. 01:34
프로세스들이 메모리에 적재되고 제거되는 일이 반복되다 보면 어떤 가용공간은 너무 작은 조각이 된다.
이처럼 곳곳에 못쓰는 작은 조각이 있지만 다 합치면 프로세스를 적재할 만한 공간이 되는 것을 외부 단편화라고 한다.
최초 적합을 쓸 것인지 최적 적합을 쓸 것인지는 단편화의 크기에 영향을 받는다. 어느 알고리즘을 사용하더라도 외부 단편화는 문제다.
압축은 외부단편화를 해결하는 방법이다 메모리 모든 내용을 한군데로 몰고 모든 가용공간을 다른 한군데로 몰아서 블록을 만드는 것
그러나 압축은 프로세스들의 재배치가 실행 시간에 동적으로 이루어지는 경우에만 가능하다. 재배치 작업은 프로그램과 데이터를 새로운 위치로 옮기고 새 위치를 반영하기 위하여 기준 레지스터만 변경하면 된다.
외부 단편화를 해결할 수 있는 다른 방법은 페이징이다. 한 프로세스의 논리 주소 공간을 여러 개의 비연속적인 공간으로 나누어 필요한 크기의 공간이 가용해지는 경우 물리 메모리를 할당하는 방법이다.
내부적으로도 단편화가 발생할 수 있다. 18,464B의 공간에 18,462B의 프로세스가 들어갈 때 정확히 공간을 할당하면 2B의 공간을 놓치지 않기 위해 2B보다 더 큰 부담을 시스템이 지기때문에 그냥 준다 이 2B는 내부 단편화다