 |
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
이준희
가입: 2006년 9월 18일 올린 글: 43
|
올려짐: 2006년10월28일 2:09 주제: malloc구현에 있어... |
|
|
sm5에서, 로케이션은 아시다시피 <b, o> 형태를 그대로 갖는데요,
MALLOC을 할때 base는 새로 잡아주지만, 아무리 뒤져봐도 offset을 변화시키는 내용을 sm5 소스내에서 찾을수가 없네요.
오프셋 변화가 불가능하다면 포인터 연산에 의한 참조는 불가능하다는건데...
저혼자 방법을 찾지 못하는거라면 난감하네요 _________________ ... |
|
| 위로 |
|
 |
신종호
가입: 2006년 9월 10일 올린 글: 16
|
올려짐: 2006년10월28일 8:01 주제: |
|
|
| 있긴한데 malloc 구현은 좀 힘들죠....OTL |
|
| 위로 |
|
 |
이준
가입: 2006년 9월 7일 올린 글: 30
|
올려짐: 2006년10월28일 18:08 주제: |
|
|
malloc에 대해 offset의 값을 건드려야 하는걸까요?
아니, 건드릴 수 있나요?;;
malloc의 경우는 메모리에 새로운 주소를 사용할 수 있는 장소라고 표시하는 것이잖아요..( allocate이죠.. )
헌데 sm5의 경우 allocate과 같은 역할을 하는건 없지 않나요? 다시말해, sm5는 메모리를 사용함에 있어서
allocate을 먼저 하고 사용하는 것이 아니라 그냥 주소만 주어지면 접근 가능하게끔 되어있는것 같은데요..
k-의 경우에 malloc(2)를 하겨되면 (base, 0)과 (base, 1)에대한 주소만 메모리에서 사용가능하도록 하지만
( 이외의 주소에 접근하려하면 not_allocated를 뱉습니다.. )
sm5의 경우에 MALLOC을 한번하여 (base, 0)을 얻게 되면 그 이후로 (base, 0)뿐만 아니라
(base, 1), (base,2) ............ (base, sizeof(int)-1) 까지 사용가능하게 됩니다.
이렇게 sm5에서 메모리에 allocate을 먼저 하고 사용하지 않는데 굳이
k-처럼 offset의 값에 신경을 써 줘야 하는 걸까요?
만약 그렇다고 하면 도대체 어떻게 신경을 써줘야 하는거죠? +_+
누가 답변좀 해주세요 ㅜ.ㅜ |
|
| 위로 |
|
 |
송수현
가입: 2006년 9월 4일 올린 글: 25
|
올려짐: 2006년10월28일 18:26 주제: |
|
|
저도 일단은.. malloc하나만 냉큼 하고 나머지는 그냥 줄줄이 이어지도록.. 해버렸네요.
다른 방법은 아무리 생각해도 안되네요 ㅜㅜ |
|
| 위로 |
|
 |
조은상
가입: 2006년 9월 8일 올린 글: 17
|
올려짐: 2006년10월28일 20:43 주제: |
|
|
저도.. 일단 malloc 하나만 하도록 해놓았어요..
다른 분들도 같은 고민을 하고 있으니 반갑네요 ... ㅠㅠ |
|
| 위로 |
|
 |
박대준
가입: 2005년 10월 7일 올린 글: 245
|
올려짐: 2006년10월28일 21:14 주제: |
|
|
| 이준 씀: | k-의 경우에 malloc(2)를 하겨되면 (base, 0)과 (base, 1)에대한 주소만 메모리에서 사용가능하도록 하지만
( 이외의 주소에 접근하려하면 not_allocated를 뱉습니다.. )
sm5의 경우에 MALLOC을 한번하여 (base, 0)을 얻게 되면 그 이후로 (base, 0)뿐만 아니라
(base, 1), (base,2) ............ (base, sizeof(int)-1) 까지 사용가능하게 됩니다.
| 맞습니다.
sm5에서는 메모리 공간을 10개 할당했다고 해서, 11번째 메모리 공간에 접근하는 것을 막을 방법이 전혀 없습니다.
어쩌면 기계가 그러한 것을 막는다는 것 자체가, 인터프리터 레벨에서 생각하다 보니, 기계어인 sm5를 너무 과대평가한 것은 아닐까요?
(그러한 것을 기계가 막아준다면, buffer overrun과 같은 에러는 생기지 않겠지요. )
문제의 정의에 보시면,
이번 숙제는 잘 돌아가는 k- 프로그램을 받아 동일한 일을 행하는 sm5 명령어들로 바꾸는 것이기 때문에,
할당된 메모리를 넘어서 접근하는 프로그램(잘 돌아가지 않는 프로그램)에 대해서는 변환을 어떻게 하셔도 무방합니다.
덧붙여,
sm5를 높게 평가하셔서,
할당된 메모리를 넘어서 접근하는 경우 적절한 예외를 발생시키도록 변환하신 분께는 추가점수를 드리도록 하겠습니다. |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|