SNU-ARC / 2024_spring_sysprog_Lab3

7 stars 0 forks source link

mm_init 관련 #40

Open robinshins opened 5 months ago

robinshins commented 5 months ago

안녕하세요.

sentinel block에 대해서 햇갈려서 문의드립니다.

ds_heap_start 와 heap_start, heap_end와 ds_heap_brk 사이에 무조건 sentinel block의 푸터와 헤더를 설정할 8바이트의 공간이 필요하다고 이해하면 될까요?

heap_start, heap_end는 32바이트 얼라인을 맞추어야 하구요.

도면만 봐서는 어떻게 구현을 해야하는 것인지 잘 이해가 가지 않아 여쭈어봅니다.

VioletXF commented 5 months ago

센티넬 블록 구현은 선택사항인걸로 알고 있는데, 만약 구현하실 생각이라면 heap start = ds heap start로부터 최소 8바이트 이상 떨어진 곳에서 32바이트 align 이런 형태로 구현하시면 될 것 같습니다. alignment로 인해 ds heap start로부터 센티넬 블록이 몇바이트 떨어져 있을지 모르기 때문에 도면에 [???]로 표시되어 있는거고요.

kwonsw055 commented 5 months ago

sentinel을 사용하실 예정이라면 이해하신 바가 맞습니다.

10 참고하시면 좋을 듯 싶습니다.

robinshins commented 5 months ago

넵 감사합니다!

robinshins commented 5 months ago

만일 sentinel 을 별도 구현하지 않을거라면 mm_check() 에서도 관련된 부분은 주석처리하고 테스트를 진행해도 문제 없을까요?

kwonsw055 commented 5 months ago

주석처리 하셔도 무방합니다.

robinshins commented 5 months ago

감사합니다!