SNU-ARC / 2024_spring_sysprog_Lab3

8 stars 0 forks source link

BS, CHUNKSIZE, SHRINKTHLD과 같은 상수 값에 대한 질문드립니다. #38

Open YueunLee opened 2 months ago

YueunLee commented 2 months ago

안녕하세요.

스켈레톤에서 주어진 상수 값이 고정되어 있다고 가정하고 구현해도 무방할까요? 다시 말해, 예를 들어 SHRINKTHLD를 사용하지 않고 1<<14 로 직접 만들어서 구현해도 되나요? 또는 BS가 32임을 가정하고 <<5 이런 식으로 코드 내에서 직접 이를 확인하는 방식으로 구현해도 되는지 궁금합니다.

추가) 질문이 하나 더 있습니다. mm_driver를 통해 확인할 수 있는 것과 채점 시에 확인하는 부분은 동일한가요? 예시로 주어진 테스트 케이스에서 코드를 돌리면 나오는 'Block size coherent' 라는 메시지가 출력되면 적어도 이 테스트케이스에 한해서는 제대로 구현한 것이라고 확신해도 되는 것인지 궁금합니다. 제대로 allocation과 free 작업을 수행하는지와, LIFO policy를 잘 지키는지, 그리고 블럭 내 payload 정보가 잘 보존되는지가 정확도 측면에서 채점되는 부분이라고 생각되는데, 채점 시에 이러한 부분들 외에 반영하시는 내용들이 있는지, 그리고 이 부분들을 mm_driver을 통해 체크해볼 수 있는지 알고 싶습니다. 감사합니다.

kwonsw055 commented 2 months ago

상수 값들은 고정되어 있다고 가정하셔도 무방합니다.

'Block structure coherent'는 mm_check에서 발생하는 메시지입니다. memmgr.c의 소스 코드를 보시면 아시겠지만, mm_check가 단편적으로 header와 footer의 mismatch만 찾기 때문에, mm_check의 통과가 제대로 된 구현을 보장하지 않습니다.

mm_driver도 이와 마찬가지로 모든 correctness 관련 내용을 다 체크하는 것이 아니기에, mm_driver의 통과가 제대로 된 구현을 보장하지 않습니다. 채점 때도 더 종합적인 correctenss의 확인을 위해 수정된 mm_driver가 사용될 수 있습니다.

채점에 반영하고자 하는 내용들을 구체적으로는 말씀드릴 수 없습니다. 다만, README에 맞추어 충실히 구현되었는지와 기능 상 문제가 없는지를 중점적으로 채점할 예정입니다.

이처럼 mm_driver로 확인되지 않는 correctness 관련 이슈가 있을 수도 있으니, mm_test를 수정하시어 필요한 부분을 확인하시는 것이 적절해 보입니다.