크래프톤정글5주차 - 메모리 할당 정책 , implicit free list / explicit free list

김태성·2024년 2월 14일
0
post-thumbnail

메모리 할당 정책

  • first fit : 리스트를 처음부터 검색해서 크기가 맞는 첫 번째 가용 블록을 선택

  • next fit : first fit과 비슷하지만 이전 검색이 종료된 지점에서 검색을 시작한다.

  • best fit : 모든 가용 블록을 검사하여 크기가 맞는 가장 작은 블록을 선택한다.

이 3가지가 있다. 이건 csapp 9장에 나오니 간단하게만 적는다.

implicit/explicit free list

먼저 동적 메모리 할당기에 대해 알아야 한다.

일단, 동적 메모리 할당기는 2가지 종류가 있다.

  • 명시적 할당기(explicit allocator) : 블럭을 명시적으로 해제(free)해야하는 할당기

  • 묵시적 할당기(implicit allocator) : 자동으로 감지해서 해제해주는 할당기(c는없음)

여기서, 명시적 할당기(ex/malloc)의 가용 리스트는 다음과 같다.

  • 명시적 가용 리스트 : 사진의 왼쪽, 가용(free)블럭들의 크기가 헤더에 있기 때문에 '암묵적'으로 다른 블럭과 연결되어있음.(크기를 아니까 다음블럭이 어디있는지 알수있음)

  • 묵시적 가용 리스트 : 가용(free)블럭의 payload가 비어 있음으로 여기에 이전/다음 블록을 가르키는 포인터를 배치.




묵시적 할당기의 예는 가비지 컬렉터 등이 있다.

여기서 중요한것은 allocator(할당기)와 free list(가용 리스트)의 용어를 혼동하면 안된다.

profile
닭이 되고싶은 병아리

0개의 댓글

관련 채용 정보