빈칸 목록

빈칸 목록(free list)은 동적 메모리 할당을 위해서 계획적으로 사용된 데이터 구조이다. 빈칸 목록은 메모리의 할당되지 않은 영역들을 연결 리스트로 연결시켜서 운용한다. 모든 오브젝트들이 동일한 크기를 가지고 있다면, 빈칸 목록이 메모리 풀로부터 메모리를 할당하는데 가장 적합하다.

빈칸 목록들은 매우 간단하게 할당과 해제를 한다. 영역을 해제하려면, 해제하려는 영역을 빈칸 목록에 연결시키기만 하면 된다. 영역을 할당하려면, 빈칸 목록의 가장 끝 부분에 있는 하나의 영역을 제거하고 그 영역을 사용하면 된다. 영역들의 크기가 다양하다면, 충분히 큰 크기의 영역들을 찾으면 되지만, 이는 큰 비용을 유발할 수 있다.

빈칸 목록은 약한 참조 지역성과 데이터 캐시를 제대로 활용할 수 없는 단점을 가지고 있고 이는 연결 리스트의 단점이 그대로 계승된 것이다. 그리고 버디 메모리 할당과는 달리 빈칸 목록은 큰 영역에 대한 할당 요구를 충족시키기 위해서 자동으로 통합되지 않는다. 이러한 단점들이 있음에도 불구하고, 빈칸 목록은 완벽한 메모리 할당자가 필요하지 않는 간단한 응용 프로그램들에는 여전히 쓸만하다.

같이 보기 
 버디 메모리 할당

참고 자료 
  The Memory Management Glossary
  Memory Allocation Lecture Slides (ppt)

메모리 관리