WEEK 10 PintOS TIL(5월17일 토요일 ~ 5월 18일 일요일)

Devkty·2025년 5월 18일
post-thumbnail

5월 17일 토요일

[목표]
Priority Scheduling에 대해서 코드를 분석하고, 작성합니다. (중단)
본격적으로 donation을 구현합니다.(중단)
프로젝트 2에 대해서 공부합니다. (진행중)

10:00 ~ 12:00

donation 테스트 케이스를 통과할 수 있게 합니다. 어찌 저찌 해서 GPT와 함께 다 만들었는데, FIFO, sema, condvar 가 다시 되지 않는다… 수정을 진행하기엔 시간이 많이 걸려서 다음 프로젝트할 준비를 해야할 것 같습니다.

12:00 ~ 13:20

식사를 하고 휴식을 취했습니다.

13:20 ~ 15:00

Pintos Project 1 중단

Project1을 중단하기 전에 블로그들에 있는 코드를 가져와서 All pass 가 되는지 확인했습니다.
결론적으로 프로젝트 1은 donation과 mlfqs(4BSD)는 구현하지 못했습니다. 그래도 자력으로 푼 alarm, priority, sema, condvar 등은 뿌듯합니다.

15:00 ~ 16:00

Pintos Project 2 새로운 시작

본격적으로 프로젝트 2에 대해서 공부를 시작했습니다. KAIST 공식 깃허브 문서와 키워드들을 확인하여 공부합니다. 저번에도 개념과 이론을 잘이해하고 있어야 코드, 알고리즘 작성하는데 도움이 많이 되었어서 차근차근 이해하고 가겠습니다.

-> 이번주는 저번주와 다르게 개념 파일도 PintOS Project2: User Programs 라는 구현페이지에 같이 정리하겠습니다.

5월 18일 일요일

[목표]
프로젝트2의 소개 챕터 이해하기
정글에서 제공하는 키워드 공부하기

집에 갔다왔습니다.

먹은 음식들을 가져와봤습니다. 집에서 정글까지는 차타고 왔습니다.


22:00 ~ 22:30

캠퍼스 도착 후 짐정리를 했다. 동생이 가져가야할 장비가 있어서 돌려주었다.

22:30 ~ 24:00

프로젝트 2에 대해서 공부를 진행했습니다. 소개부터 확인을 하고 있습니다. 이후에 정글에서 제공하는 공부 키워드 토대로 공부할 예정입니다.

→ 프로젝트 소개와 관련된 문서(동기화, 가상주소)를 모두 읽어보았다. 100퍼센트 이해하는 것보단 흐름을 파악하고, 이러한 내용과 어떤 요소를 사용하고 수정해야하는지 알아보았다.

24:00 ~ 03:00

이제, 정글에서 제공하는 공부 키워드를 정리해보겠다. 이후에는 프로젝트 파일에 대한 번역 진행 예정입니다.

프로젝트 시작전 정의 및 부팅테스트

정리하기 전에 process.c에서 오류가 뜨는 문제가 있어서 확인을 해보니, thread.h에 define이 되지 않았습니다. 그래서 #ifndef#define USERPROG 로 바꿔줘서 해결했습니다. 하나만 정의하면 나머지도 if문에 따라 정의됩니다.

그리고 부팅 테스트를 해봐야 프로젝트2를 진행될 수 있다고 하여서 먼저 부팅테스트를 했습니다. 최상단 파일에서 source ./activate 를 실행하고, cd userprog 를 통해 파일을 이동하여 make 로 파일을 만들어서 build 파일로 들어가서 해당 코드를 실행하면 정상 부팅 여부를 확인할 수 있다.

pintos --fs-disk=10 -p tests/userprog/args-single:args-single -- -q -f run 'args-single onearg'

이제부터 본격적으로 공부 키워드를 정리해보겠습니다.

profile
모든걸 기록하며 성장하고 싶은 개발자입니다. 현재 크래프톤 정글 8기를 수료하고 구직활동 중입니다.

0개의 댓글