내부 단편화와 외부 단편화의 차이점에 대해서 설명해주세요


내부 단편화는 실제로 필요한 용량보다 할당해준 용량이 더 많은 경우 발생합니다. 외부 단편화는 메모리를 요청하는 과정에서 발생하는 빈 공간을 의미하며, 이 빈 공간은 연속적이지 않기 때문에 구멍의 총합은 커도 요청을 받아주지 못하는 경우가 생깁니다.

그러면, 각각의 단편화를 줄이기 위해 어떤 방법을 도입할 수 있었나요?

외부 단편화를 줄이기 위해선 할당되지 않은 공간의 크기를 최대한 유지하는 것이 핵심이라고 할 수 있습니다. 이를 달성하기 위하여 요청된 크기와 거의 일치하는, 이른바 Best-Fit 알고리즘을 사용할 수 있습니다.

내부 단편화를 줄이기 위한 방법으로는 내부 단편화가 일어나는 이유이기도 한 블록의 단위를 작게 설정하는 것으로 달성이 가능합니다. 다만, 블록의 크기를 줄이면 이를 관리해야 하는 비용이 증가하고, 페이지 헤더의 수가 증가함으로 가용공간이 줄어드는 문제가 발생할 수 있습니다.