게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

HW4-3 GC에 대해서 질문드립니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김동욱



가입: 2013년 9월 14일
올린 글: 23

올리기올려짐: 2013년10월21일 16:14    주제: HW4-3 GC에 대해서 질문드립니다. 인용과 함께 답변

PDF를 보면

코드:
(S,M,E,malloc::C,K) -> (l::S,M,E,C,K) 과정에서 |domM|이 8192 개가 되면
(S,M,E,malloc::C,K) -> (l,S,(gc(~),E,C,K) 로 계산.


이런식으로 스펙이 나와있는데요.
위 스펙으로 보면 sm5의 MALLOC에 관해서만 gc를 실행하게끔 되어있는데.


코드:
(V(L l)::V v::s,_,_,STORE::c,_) -> (s, (l,v)::m, e, c, k)


Sm5의 실제 구현을 보면 STORE를 실행할때도 메모리 번지수 (loccount)는 유지되지만 실제 메모리 리스트의 길이는 증가하고 있습니다.
단순히 변수 하나를 생성하고 STORE만 만번쯤 반복하는 프로그램을 실행하더라도 메모리 번지수는 단 하나지만
메모리 리스트의 크기는 8192번을 넘어서기때문에 유용한 gc를 구현한다면 MALLOC 뿐만아니라 STORE부분도 손을 봐야할 것 같아요.


그런데 또 PDF나 작년게시판들을 보면 실제적으로 유용한 gc를 구현한다라기보다 가상머신에서의 gc에 대한 로직을 한번 구현만 해보자..!
이런 느낌이라 gc를 구현할 때 단순히 loccount의 크기 관리에 중점을 두어야하는지 아니면 실제적으로 메모리 리스트의 크기에 중점을 두어야할지 애매해서 질문드립니다.

질문을 정리해보면.

운용되는 메모리 번지수의 개수에만 제한이 있고 번지수 자체와 메모리 리스트의 크기는 계속 커질 수 있는 건가요?
다른 말로 |domM|은 메모리 m의 크기를 의미하나요 아니면 loccount, 또는 서로다른 메모리 번지수의 개수를 의미하나요?

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년10월21일 16:37    주제: 인용과 함께 답변

인용:
운용되는 메모리 번지수의 개수에만 제한이 있고 번지수 자체와 메모리 리스트의 크기는 계속 커질 수 있는 건가요?

맞습니다. GC 의 기준은 현재 할당된 메모리 번지의 개수입니다. 메모리 리스트와는 관계 없습니다.
또한 말씀하신 대로 이번 숙제에서 gc를 해도 메모리 구현이 list 로 되어있기 때문에 실제로는 비효율적일 수 있습니다.
하지만, 이번 숙제의 목적은 역시 말씀하신 대로 가상 머신에서의 GC 구현이므로
실제로 돌아오는 효율이 좋지 않더라도 숙제 스펙에 집중하시면 됩니다 Smile
위로
사용자 정보 보기 비밀 메시지 보내기
김동욱



가입: 2013년 9월 14일
올린 글: 23

올리기올려짐: 2013년10월21일 17:06    주제: 다른 질문 인용과 함께 답변

답변 감사드립니다

여기서 한가지 더 여쭤보자면 gc의 구현에 따라 loccount의 맥시멈이 달라질 것 같은데

1. 재활용시 이미 사용한 번지수에 덮어씌우는 경우에는 loccount가 최대 8192에서 멈춰있을 테고

2. 재활용시 예전 번지수의 메모리를 삭제하고 새로운 번지수를 할당하는 경우에는 loccount가 무한정 늘어날 수 있을 것 같습니다.

두 경우 모두 서로다른 메모리 번지의 개수는 8192 이하겠지만

2번처럼 sm5 내부에서 운용되는 loccount가 8192를 넘어서도록 구현해도 되나요?


채점 기준이 어떻게 될지 몰라서 이것저것 여쭤봅니다.. Embarassed
위로
사용자 정보 보기 비밀 메시지 보내기
최준원



가입: 2007년 3월 30일
올린 글: 149

올리기올려짐: 2013년10월21일 17:12    주제: 인용과 함께 답변

인용:
두 경우 모두 서로다른 메모리 번지의 개수는 8192 이하겠지만

2번처럼 sm5 내부에서 운용되는 loccount가 8192를 넘어서도록 구현해도 되나요?

네, 그렇게 구현하셔도 됩니다.
채점할 때 loccount 를 사용하는 일은 없을겁니다.

크게 아래와 같은 두 경우에 대해서 여러가지 시나리오를 만들어 채점이 이루어질 예정입니다.

1) 8192 개를 유효하게 할당
-> 8193 번째 할당 시도시 정상적으로 예외가 일어나는지.
2) 8192 개를 할당하였으나 GC 가 가능
-> 8193 번째 할당 시도시 정상적으로 할당 되는지. 그리고 유효한 메모리 엔트리의 값이 변하지 않았는지.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2013) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay