최종 결과물이다.. 위 사진과 같이 4개의 test case가 fail인 상태이다.
FAIL tests/vm/page-merge-par
FAIL tests/vm/page-merge-stk
FAIL tests/vm/page-merge-mm
FAIL tests/vm/cow/cow-simple
오늘 swap을 구현했는데, 옆 팀은 list로, 우리 팀은 배열로 구현했다. 나중에 봤을 땐 시중에는 대부분 list로 구현되어 있었는데, 배열이 좀 더 간단했다. 또한 page-merge 부분을 수정할 때도 배열이 더 수월해보였다. (물론 아직 fail이다)
다만 찜찜한 점은 swap_out()
을 시행할 때 물리 메모리에서 가장 오랫동안 사용하지 않은 frame을 가져오고 싶었는데, 그 부분이 확실하지 않다.
어려웠던 점은 시작이다. 시작이 제일 어려웠다. 처음에 다른 팀에게서 힌트를 듣지 않았다면 정말 구현을 하지 못했을 수도 있겠다고 생각했다. 애초에 sector 단위로 판단하는 대에도 시간이 오래걸렸다. 그래도 swap_in()
은 swap_out()
의 역이여서 괜찮았다.
내 vscode..인지 aws문제인지는 결국 문제를 찾지 못했다. 간헐적으로 터지는 syn-read와 swap-fork는 음.. 혹자는 동기화 문제일 것이라 생각했는데 별의 별 처리를 다 했는데도 이러니 어지러울 따름이다.
발표 준비는 어느정도는 해 둘 생각이지만 팀원들과의 주된 이야기는 내일 발표 직전에 진행할 것 같다. 예정된 시각은 13시로 오전에 룸 어메니티가 예정되어 있어 자리로 일찍 비워야 하고, 오늘은 최대한 남은 에러들을 해결해보는 방향으로 진행할 것 같다.
정말 정신없이 지나간 2주였는데 그만큼 얻어간 것도 많은 것 같다. 하지만 기록하지 않으면 날아가는 법! 잊기전에 정리를 해야겠다..라고 언제나 다짐만 한다..ㅠㅠ
그래도 핀토스는 진짜 진짜 정리하자. 사실 지금도 모르는 채로 넘어간 것들이 있을 것이다.