이진우0306
가입: 2023년 3월 8일 올린 글: 10
|
올려짐: 2023년5월3일 15:32 주제: [HW6] Ex2(gc) 관련 질문 |
|
|
안녕하세요,
Ex2에서 구현해야 하는 GC의 범위(어디까지 potentially accessible한 메모리인가?) 에 대해 질문이 있습니다.
1.
accessible한 memory location의 정의는 넓게 잡으면 현재/continuation의 environment에 bound된 메모리, 좁게 잡으면 현재/continuation의 commands를 실행하며 실제로 access하게 되는 메모리를 의미할 것입니다.
둘 중 전자에 맞추어 구현해도 괜찮을까요? 즉, bound variable이 command에 무관하게(앞으로 실행할 command에 의해 접근되지 않아도) GC를 마친 후 메모리에 남아있어도 될까요?
----
2.
cmds6 예제에 의하면 <base, offset1> pair가 access된다면 <base, offset2>도 add 등에 의해 access될 수 있으니 GC에 의해 청소되면 안될 것입니다.
1번 질문과 이어지는 개념으로, 어떤 location <base, offset>이 access될 수 있다면 base를 공유하는 임의의 <base, _>가 전부 access될 수 있다고 가정해도 될까요?
또한, 위 질문에 대한 대답이 yes라면 스켈레톤 코드의
let new_m = List.filter (fun (l, _) -> List.mem l !reachable_locs) m in ..
이 줄을 수정해도 되는지 궁금합니다.
----
감사합니다. |
|