KAIST-PINTOS Project 1 구현 후기

KIM 쥬얼리 (vs0610)·2021년 2월 3일
0

글을 시작하며

어제(2021년 2월 2일)가 입춘이었다고 한다. 작년 12월 7일부터 SW사관학교 정글에 입소해서 벌써 2개월이라는 시간이 흘렀다. 여느 입춘이 다 그렇듯 입춘은 아직 봄이 왔다라는 문자 그대로의 느낌보다 아직은 춥다 라는 느낌이 드는 절기이다. 하지만 하루가 어느정도 길어진 것을 체감하니 시간이 그래도 조금 흘렀구나 싶다.

2개월간 매주 새로운 프로젝트를 시작하고 끝내며 정말 쉼없이 달려왔다. 매일 거의 14시간, 주간 100시간 정도를 몰입하다 보니 벌써 여기까지 왔다. 어느새 남은 프로젝트는 OS 프로젝트와 나만의 무기만들기라는 프로젝트 두 개뿐이다. (물론 두 프로젝트가 합쳐 10주가 넘는다.)

OS 프로젝트는 운영체제와 비슷하게 역할을 수행하는 교육용 OS인 PINTOS를 구현하는 프로젝트이다. 개발자가 아니었다면 모르고 살았을 운영체제의 역할에 대해 이해하고 구현까지 하다보니 개발자의 계단을 밟아 올라가고 있구나 하는 느낌이 든다.

또한, PINTOS는 컴퓨터 공학 전공자 출신이라면 꼭 하게되는 실습이다. 또 그 난이도가 가히 극악이라고 널리 알려진 실습이기도 하다.

총 나는 4주동안 project 1부터 project4까지 1주일씩 완성해볼 예정이고 이 글은 project1의 구현을 방금 마쳐 쓰는 회고이다.

project 1을 끝내고 느낀 점

project 1은 프로세스와 스레드, 그리고 스케쥴링을 구현하는 과제였다. 과제에 대한 TIL 및 정리는 앞으로 차근차근 올릴 예정이다.

Q) 난이도가 정말 극악이었는가? 난이도에 대하여...
아직은 project 1 밖에 안해서 그런지 극악이라고까지는 말 못하겠다. 물론 처음 시작은 굉장히 어려웠다. 프로세스와 스레드, 그리고 각종 스케쥴링에 대한 알고리즘을 모르고 있는 상태에서 구현을 한다는 것은 말도 안되는 일이었기에 먼저 선행 공부가 필요했다. 하지만 주어진 시간은 일주일이었고 최대한 빠르게 개념을 정립해나가는 것이 중요했다. 다행히 OS 프로젝트를 시작하기 전 조금씩 스터디 팀원들과 스터디를 하고있었고 낯선 상태로 공부를 시작하지는 않았다.

또한, b+ tree, 웹서버를 구현하면서 C언어, 포인터, C언어를 이용한 알고리즘을 충분히 많이 연습했기 때문에 해당 부분에서 생기는 어려움은 적었다.

결론 : OS프로젝트가 끝날 즈음에 하는 말은 지금과 다를 수도 있지만 아직은 할만하다!

아쉬운 점

디버깅
make 하고 test하는 프로젝트들은 디버깅이 너무 어렵다. OS Pintos 가이드에서 디버깅 하는 법으로 printf, backtrace, gdb 등 을 설명해주었지만, 뭔가 제대로된 디버깅을 지금 하고있냐고 물어보면 아니다라고 답할 것 같다. 꼭 OS 프로젝트가 다 끝나기 전에 디버깅에 대해서 더 알게되고 싶다.

0개의 댓글