[CS기초] Implicit Free List vs Explicit Free List

2025. 4. 28. 15:27·크래프톤 정글/CS기초(키워드, 개념정리)

Implicit Free List vs Explicit Free List

동적 메모리 할당을 관리할 때, 운영체제나 할당기는 사용 가능한(free) 메모리 블록을 효율적으로 관리하기 위해 다양한 전략을 사용하게 되는데요. 이를 위한 대표적인 두 가지 방법이 바로 Implicit Free List와 Explicit Free List입니다. 이번 글에서는 각 방식의 특징과 장단점을 함께 살펴보도록 하겠습니다.

 

 

Implicit Free List

Implicit Free List는 메모리의 모든 블록이 포인터를 갖고 있진 않지만, 크기 정보를 이용해 각 블록을 마치 연결 리스트처럼 순회할 수 있는 구조입니다. 각 블록들은 물리적으로는 연속적으로 배치되어 있지만, 블록마다 크기가 가변적이기 때문에 각 블록의 크기를 이용해 다음 블록으로 건너뛰게 됩니다. 이때 각 블록은 헤더(Header)와 푸터(Footer)에 크기와 할당 여부 정보를 저장하며, 이러한 방식으로 블록들을 암시적으로 연결합니다.

  • 특징
    • 블록을 탐색할 때 모든 블록을 확인하면서 빈 블록을 찾는다
    • 추가 포인터가 필요 없으므로 공간 오버헤드가 상대적으로 적다
    • 빈 블록 탐색 시간이 길어질 수 있다
  • 장점: 간단한 구조로 관리가 쉽다
  • 단점: 빈 블록 탐색 시 모든 블록을 순차적으로 확인해야 하므로 성능이 저하될 수 있다

 

Explicit Free List

Explicit Free List는 비어있는 블록(free block)만 별도의 연결 리스트로 명시적으로 관리하는 방식인데요. 각 빈 블록은 추가적으로 이전 블록(pred)과 다음 블록(succ)을 가리키는 포인터를 가지고 있어, 서로 간에 명시적으로 연결되어 있습니다.

  • 특징
    • 할당된 블록을 건너뛰고, 빈 블록만 빠르게 탐색이 가능하다
    • 빈 블록 간의 연결을 위해 추가적인 공간이 필요하다
  • 장점: 빈 블록 탐색 및 할당이 더 빠르고 효율적이다
  • 단점: 빈 블록마다 포인터(pred, succ)를 저장해야 하므로 공간 오버헤드가 증가한다

 

마치면서

Implicit Free List는 구조가 단순하여 공간 효율은 높으나, 탐색 속도가 느립니다. 반면, Explicit Free List는 탐색 속도는 빠르지만 공간을 더 소비하는 트레이드 오프가 있죠. 따라서 상황에 따라 성능과 공간 효율 중 어떤 요소가 중요한지를 판단하여 적절한 메모리 관리 방식을 선택해야 합니다.

저작자표시 비영리 변경금지

'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글

[CS기초] 시스템 콜(System Call)  (0) 2025.04.28
[CS기초] Demand-Zero Memory  (0) 2025.04.28
[CS기초] 메모리 할당 정책 (Memory Allocation Policies)  (0) 2025.04.28
[CS기초] 메모리 단편화(Memory Fragmentation)  (0) 2025.04.28
[CS기초] 동적 메모리 할당 (힙, sbrk, malloc ,free)  (0) 2025.04.27
'크래프톤 정글/CS기초(키워드, 개념정리)' 카테고리의 다른 글
  • [CS기초] 시스템 콜(System Call)
  • [CS기초] Demand-Zero Memory
  • [CS기초] 메모리 할당 정책 (Memory Allocation Policies)
  • [CS기초] 메모리 단편화(Memory Fragmentation)
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리) N
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어) N
        • 마이 정글(WIL, 에세이)
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CS기초] Implicit Free List vs Explicit Free List
상단으로

티스토리툴바