세리프 따라잡기
WEEK06 - TIL unused padding 이유 본문
heap list에서 first word를 unused padding으로 하는 이유(pdf 880)
(1 word=4bytes 전제) implicit free list에서 prologue block이 1 word-size header와 1 word-size footer로 총 2 words를 차지한다. 만약 그 다음 블록이 온다면, 1 word-size header가 오게 돼서 실제 payload 앞에 3 words만 존재하게 된다. 그러면 payload를 가리키는 pointer의 주소값 12가 되어 8의 배수가 될 수 없다. 이걸 맞춰주기 위해서 1 word size unused padding이 heap의 맨 앞에 붙게 되는 것이다.
즉, 경계가 헤더와 풋터 사이에 있어야 하는데, 헤더와 풋터가 총 2워드 먹으니까 경계가 맞지 않아서 그걸 unused를 이용해 경계를 맞춰주는 것
prologue와 epilogue도 비슷한 느낌
'SW사관학교 정글' 카테고리의 다른 글
WEEK06 - TIL 분리 가용 리스트(segregated free list) (0) | 2022.05.10 |
---|---|
WEEK06 - TIL 명시적 가용 리스트(explicit free list) (0) | 2022.05.08 |
WEEK06 - TIL 동적 메모리 할당 (0) | 2022.05.06 |
WEEK05 - TIL 코드리뷰 강의 간단 정리 (0) | 2022.05.05 |
WEEK05 - TIL 메모리 동적할당 / 메모리 누수 (0) | 2022.05.01 |
Comments