세리프 따라잡기

WEEK06 - TIL unused padding 이유 본문

SW사관학교 정글

WEEK06 - TIL unused padding 이유

맑은 고딕 2022. 5. 7. 13:25

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도 비슷한 느낌

Comments