회고
오전 7시 30분. 하체 운동을 다녀왔다. 죽을 것 같다. 가끔 보면 코딩보다 헬스를 열심히 하는 건가 싶기도 하다.
2023년 6월 15일. 프로젝트 3이 시작된 지 3일이 지났다. 프로젝트 3는 특히 기간이 길게 주는데, 다 이유가 있었다. 구현해야 할 것은 다음과 같다. Memory Management, Anonymous Page, Stack Growth, Memory Mapped Files, Swap In/Out으로 총 5가지 파트로 나누어져 있다. 우선 양이 지난주의 2배이다. 그리고 그냥 어렵다. 프로젝트 1을 할 때는 한양대 핀토스 pdf에게서 많은 도움을 받았었는데, 프로젝트 2와는 조금 다르더니 프로젝트 3와는 많이 달랐다. 그냥 카이스트 원문 깃북을 보고 하는 것이 마음 편하다.
양이 많은 것과는 별개로 의욕이 안 생긴다. 2주나 있어서 여유롭다고 느껴지는 건지, 한 달 넘게 이어지는 핀토스에 질려서 그런 건지 의욕이 참 안 생긴다. 그래도 일단 깃북을 최대한 읽으며 개념을 공부했다.
이후 팀원들과 구현의 방향에 대해 이야기하며 서로 이해하지 못한 것에 대해 토의하는 시간을 가졌다. 깃북을 읽으니 어느 정도 방향이 잡히는 기분이 들었다.
TIL
공부한 것은 핀토스의 메모리 관리 기법이다. 가상 메모리 시스템에서 가상 페이지와 물리 프레임을 다룬다. 핀토스의 가상 메모리가 어떻게 구현되어 있는지, 유저 영역과 커널 영역은 어떻게 다른지 등 모르는 게 너무 많다. 깃북 만으로는 세세하게 모든 것을 알 수 없었고, 챗지피티에게도 도움을 요청했지만 얘에게 너무 어려운 질문이었는지 이상한 답을 줘서 포기했다.
프로젝트 3에서 우선적으로 구현해야 하는 것은 Supplemental Page Table(보조 페이지 테이블)이다. 페이지 테이블에서 찾고자 하는 페이지가 없을 때 Page Fault가 발생하는데, 이 때 SPT를 사용해서 페이징을 도와준다. SPT는 프로세스의 모든 페이지에 대한 정보를 가지고 있어야 하고, 가상 주소와 디스크 주소를 매핑해준다. 이는 찾고자 하는 페이지가 물리 메모리에 없을 때, 디스크 주소에서 가져와서 적재하기 위함이다.
보조 페이지 테이블 개념이 무척 어렵다. 핀토스 이외의 곳에서는 쓰지도 않아서 자료도 없고, 깃북의 설명도 부족하다. 팀원들과 작동 방식에 대해 추측하고 합리적일 것 같은 방식을 추측할 뿐이다. 그래도 꽤 재밌는 것 같다.
내일은 SPT의 구현을 해볼 계획이다. 해야 할 게 많은데 시간이 빨리 흘러버렸다..
나만무에 대해
핀토스의 절반이 끝나면서, 나만무 프로젝트가 다가오고 있다. 나만의 무기 프로젝트. 모두가 제일 기대하고 있는 과제이다. 크래프톤 정글 합숙 4개월 가까이 배운 CS 기초를 바탕으로 자신 만의 무기로 삼을 수 있는 프로젝트를 진행한다. 동료들과 밥을 먹을 때면 나만무에 관한 이야기를 하곤 한다. 어떤 직무를 맡고 싶은지, 사용하고 싶은 기술 스택은 있는지, 개발 아이디어는 생각해둔게 있는지 등등. 나도 꽤 설레는 중이다.
오늘의 저녁
'크래프톤 정글 2기' 카테고리의 다른 글
[크래프톤 정글 2기] Day 76 (0) | 2023.06.18 |
---|---|
[크래프톤 정글 2기] Day 75 (0) | 2023.06.17 |
[크래프톤 정글 2기] Day 72 (0) | 2023.06.14 |
[크래프톤 정글 2기] Day 70 (0) | 2023.06.12 |
[크래프톤 정글 2기] Day 69 (0) | 2023.06.11 |