본문 바로가기

6주차 개발일지

@정소민fan2025. 4. 23. 10:30

이번 주차의 메인 과제는 'RB트리를 C언어로 구현하기' 였다.

나는 학부 과정에서 알고리즘 수업 때 RB트리를 배운 적이 있어서 훨씬 수월했다. 물론 10시간 디버깅을 하는 지옥을 겪긴 했지만..

그런데 이게 PintOS 과제에서 쓰일 것 같지는 않다. 아마 C언어 연습을 좀 더 하라고 내준 것 같기는 한데 이중 포인터도 사용할 필요 없이 뚝딱 구현하면 끝이라 연습이 될까 싶기는 했다.

아래는 RB트리의 개념과 과제를 설명한 노션이다

https://verdant-bathtub-bae.notion.site/RB-1d67bb7778c9801da7ade72ba657ccee?pvs=4

 

RB 트리 | Notion

2-3-4 트리와 1대1로 대응됨

verdant-bathtub-bae.notion.site

 

위 메인 과제 외에도 CSAPP에서 링커, 예외적인 제어흐름, 가상 메모리 등을 공부해야 했다.

하나하나 모두 만만치 않은 주제인데, 코치님들 말씀으로는 3장보다 그 양이 적다고 하셨지만... 글쎄 더 어려운 난이도는 제쳐두고 절대적인 양도 그렇게 적지는 않은 것 같다.

링커

https://verdant-bathtub-bae.notion.site/1c37bb7778c980ffa6becb3971063ee0?pvs=4

 

링커 | Notion

링킹

verdant-bathtub-bae.notion.site

링커를 처음 공부하면서 느낀 점은 "아... CSAPP 이 책 정말 난해하다 !!"

번역본 책들의 특징인지 모르겠는데 쉬운 말도 어렵게 빙빙 돌아가며 설명해주어서 내 머리를 더 어지럽게 했다.

오히려 구글링과 GPT 선생의 도움으로 이해를 더 쉽게 한것 같다

동기 중 하나는 원서로 책을 읽고 있는데 그 편이 이해가 더 쉽다고도 한다

예외적인 제어흐름

https://verdant-bathtub-bae.notion.site/1dc7bb7778c980a1b347eee6520803f4?pvs=4

 

예외적인 제어흐름 | Notion

Exceptional Control Flow (ECF)

verdant-bathtub-bae.notion.site

인터럽트와 트랩, 시그널을 반드시 익히라고 LMS에 나와있었다. 코치님에게 여쭤보니 시그널을 PintOS에서 우리가 구현을 해볼수도 있다고 하니 더 꼼꼼히 봐야겠다.

가상메모리

https://verdant-bathtub-bae.notion.site/1bd7bb7778c980c9b272ddca6167bb93?pvs=4

 

가상 메모리 | Notion

페이지 테이블

verdant-bathtub-bae.notion.site

가상메모리도 컴퓨터구조 수업 때 다룬 내용이기는 했으나 이 책에서는 더 깊게 파고들어서 공부할 수 있었다.

가상 주소 = 페이지 테이블의 인덱스라는 것을 이해하고, 가상 주소를 왜 사용했는지 이해하는 것이 핵심인 것 같다.

 

후기

나는 공부하면서 항상 다음과 같은 꼬리 질문을 던진다.

1. 이 용어가 무엇인가?

2. 왜 이렇게 설계하였는가?

3. 이것이 어디에 쓰이는가?

 

위 의문들은 마냥 책만 읽어서는 해소되지가 않는다. 그렇게 친절하지도 않고 위에서 말했듯 난해하기도 하고.. 정말 GPT 선생이 없었다면 해결되지 않았을 궁금증들이 굉장히 많았다.

이 글을 읽는 다른 사람들도 모두 공부한 내용에 꼬리에 꼬리를 물고 공부해보는 것을 추천한다. 깊게 파고들어가다 보면 결국 다른 모든 컴퓨터 시스템과도 연관되어 있다는 것을 깨닫고 현자가 되는 기분을 체험해볼수 있다.

'크래프톤 정글' 카테고리의 다른 글

8주차 개발일지  (1) 2025.05.07
7주차 개발일지  (0) 2025.04.30
5주차 개발일지  (0) 2025.04.16
4주차 개발일지  (0) 2025.04.10
3주차 개발일지  (0) 2025.04.03
정소민fan
@정소민fan :: 코딩은 관성이야

코딩은 관성적으로 해야합니다 즐거운 코딩 되세요

목차