게시판 인덱스

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

S80 을 작성할때, 메모리의 타입에 대한 질문이 있습니다.

 
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
한재화



가입: 2007년 10월 6일
올린 글: 25

올리기올려짐: 2007년11월1일 16:58    주제: S80 을 작성할때, 메모리의 타입에 대한 질문이 있습니다. 인용과 함께 답변

현재 Sm5의 구조에서는 메모리가 단순히 (loc * value) list 의 타입을 가지고 있는데요..
이를 gc 함수에 넣으면 반환되는 값이 다시금 (loc * value) list 지 않습니까?

그러면 이는 원래 있던 메모리를 재활용하는게 아니라, 새로운 메모리를 만들어내는 개념이 되는데, 이렇게 하는 것도 가비지 컬렉션의 의미와 부합하나요?
그게 아니라면, Sm5의 메모리 정의를 ref 타입으로 고쳐서 작성을 해야 할 듯 싶네요.

숙제 문서에 단순히 SM5를 뜯어고쳐서 만들라고 되어있어서 어디까지를 생각하고 구현해야 할지 감이 잘 안옵니다. Confused

답변에 미리 감사드립니다. Smile
위로
사용자 정보 보기 비밀 메시지 보내기
남기웅



가입: 2007년 10월 10일
올린 글: 17

올리기올려짐: 2007년11월1일 17:26    주제: 인용과 함께 답변

물론 우리는 지금 nML 위에서 K-와 SM5를 돌리고 있으니, 실제로 가비지 컬렉션이 일어나는 것은 아니겠구요.
새로운 메모리 (loc, value) list 를 만든다는 것이, nML의 입장에서는 새로운 값을 계산하는 것이겠지만, SM5라는 가상의 기계 입장에서 생각해 본다면 원래 메모리에서 필요 없는 location들을 memory map 에서 제거한 것을 앞으로 사용하는 것이므로 재활용이 되겠지요.

예를 들어 처음의 메모리가
[(loc1, 123), (loc2, 246)] 이 상태였는데, 메모리를 검사해 보니까 loc2 는 앞으로 절대 쓸 일이 없겠다 싶으면, 메모리를 [(loc1, 123)]으로 바꿔버리는 것이지요.
이렇게 하면 그 다음 malloc 명령에서 loc2가 배정될 수 있는 것이고, 재활용 되는 거구요.

쉽게 생각해서 '이미 한 번 malloc 된 location 중에서 필요없는 것들을 모아서, 앞으로의 malloc 에서 배정할 수 있도록 하자' 입니다.
즉 메모리를 재활용 하는 것이라기보다, 현재의 메모리 상태를 바꿈으로써 location을 재사용하는 것이네요.
위로
사용자 정보 보기 비밀 메시지 보내기 이메일 보내기
이전 글 표시:   
이 게시판은 잠겼으므로 글을 올리거나, 답변을 하거나 수정을 할 수 없습니다   이 주제는 잠겼으므로 답변을 하거나 수정을 할 수 없습니다     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2007) 시간대: GMT + 9 시간(한국)
페이지 11

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


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