|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
정주성
가입: 2012년 10월 1일 올린 글: 4
|
올려짐: 2013년10월26일 13:15 주제: 4-3 질문입니다 |
|
|
코드를 보면, 메모리의 주소(loc)는 base(int) * offset(int)의 형태임을 알 수 있습니다.
여기서 loccount 는 base의 범위일 뿐, offset과는 상관이 없다는 것도 알 수 있습니다.
그래서 base 0의 offset 0, offset 1, offset 2, ... 자리에 값을 하나씩 모두 넣을 수 있으며, 이렇게 8192개의 값을 넣어도 malloc을 추가로 하지 않는다면(다시 말해 base 0에서 벗어나지 않는다면) loccount 값은 1을 넘어가지 않게 됩니다.
정리하자면, 8192개의 값을 넣고도 gc를 실행해야 하는 조건에 걸리지 않을 수 있게 됩니다.
이거.. 문제 있다고 생각됩니다만, 답변해주시면 감사하겠습니다. |
|
위로 |
|
|
최준원
가입: 2007년 3월 30일 올린 글: 149
|
올려짐: 2013년10월26일 13:32 주제: |
|
|
인용: | 그래서 base 0의 offset 0, offset 1, offset 2, ... 자리에 값을 하나씩 모두 넣을 수 있으며, 이렇게 8192개의 값을 넣어도 malloc을 추가로 하지 않는다면(다시 말해 base 0에서 벗어나지 않는다면) loccount 값은 1을 넘어가지 않게 됩니다.
정리하자면, 8192개의 값을 넣고도 gc를 실행해야 하는 조건에 걸리지 않을 수 있게 됩니다. |
맞습니다. 이 시나리오대로 흘러가면 메모리 크기가 8192 를 초과하는데도 gc 가 호출되지 않게 됩니다.
이 문제를 조교팀에서 인지하고 있었고, 교수님과도 상의해 보았는데요.
결론적으로, 이런 케이스는 이번 숙제에서는 신경쓰지 않으셔도 됩니다.
아래 두 가지 사항을 참고해 주세요.
1) GC 는 문제 스펙과 같이 malloc 으로 할당 시 동작합니다.
"메모리 크기가 8192가 되었다"가 우선이 아니라 "malloc 명령을 시행한다"가 우선입니다.
2) 숙제 채점에서 위에 언급된 offset을 임의로 조작하여 location을 만들어내는 경우는 없을 것입니다. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|