🤔회고
절제와 실패의 반복
이번주 KAIST 본캠에서 대학 축제가 열리고 있다고한다. 잠시 정도야 다녀올 수 있지 않을까 했는데, 쏟아지는 읽을 자료와 구현 복잡도에 결국 가기를 포기했다. 그리고 가더라도 편한 마음으로 축제를 즐길 수 없을 것 같았다. 뿐더러 간안클(간식 안먹기 클럽)을 통해 수시로 생각나는 간식을 한번이라도 더 꾹 참아볼 수 있었다. 절제와 실패를 반복하며 스스로와의 약속을 하루라도 지켜보려 노력하고 있다. 견제(?)해주는 동료들 덕분에 나은 삶을 살고 있는 것 같아 좋다. 그리고 Alarm clock 과제를 1차적으로 구현해서 오늘부터 러닝을 재개하려 한다. 핀토스 과제에서 살짝 숨통이 트여서 일상 패턴으로 돌아가서 건강도 챙겨보고 싶어졌다.
CS 지식이 꿈틀꿈틀 🌱
OS Review 강의에서 머리를 쥐어짜며 답을 하는 나를 보았다. CPU, 메모리 가상화 개념은 정글 입소 전에는 몰랐고 이곳에서 조금씩 채워지고 있었나보다. 아직은 어렴풋한 개념이지만, 교재 학습 및 실습을 통해 체화를 할 수 있으면 좋겠다. 특히나 이번에는 발표 과제까지 있어서 부족함 없이 개념을 채우기가 목표가 되었다. 해서 Polling과 Interrupt 방식에 대한 차이를 더 확실히 알고자 가이드에 없는 [CH8. 예외적인 제어 흐름]을 읽어보려한다.
디깅이냐 과제 완료냐
이번주차는 러닝도 안나가고 새벽 2-3시에 퇴근했다. 과제 마무리 날에는 새벽 5시에 들어가서 오후 OS 강의에서 졸기도 했다. 그래서 티타임, 회식 스킵하고 푹 잤다. 그리고 선배님의 조언으로 디깅이 필요하다고 전해들었다. 분명 이번주차는 노는 시간 줄여가면서 공부했는데, (물론 아침 11시에 출근해서 순공 시간은 14시간으로 동일해서 피곤함만 늘은건가?) 과제 끝내기에 급급했던 것 같기도 하다. 질 높은 한시간 한시간을 보내고 싶은데, 그리고 꼬리 질문에 답변하고 싶은데 코치님 앞에서는 꿀 먹은 벙어리가 되곤 하는 순간들이 아쉬움으로만 남지 않았으면, 자극제가 되었으면.
📅필수 목표
[240924 화] 09-17 (옆방에서 푹 자고 일어남)
✅ 시험 및 리뷰
✅ 국취제 1차 상담
❌ 코틀린 마무리 (정리로 대체)
✅ 저녁 고기 구이 (먹고 휴식)
[240925 수] 10 - 02 (14H)
✅ 핀토스 과제 개요 파악
✅ week07 계획 논의
[240926 목] 9:30 - 02:30 (15H)
✅ OSTEP 스케줄링 관련 챕터까지 읽고 과제 스펙 예상하기
✅ Project1-1 테스트 분석 및 작업
>> KAIST pintos 개요 강의 보고 힌트 얻음
>> GPT 도움으로 디버깅을 끝내버려서 아쉬웠고 감은 잡아서 좋았음
[240927 금] 10:30 - 02:30 (14H, 축제는 꿈나라에서, 열심히 하기로 했으니깐 마음 다 잡자)
✅ 출근하고, make check 결과 확인하기 (20/27 fails 기대값과 동일)
✅퀴즈 정리 (흔히 나오는 면접 질문이라고 하셨으나 답 못한게 많음)
✅ 20/ 러닝
✅ CSAPP: CH8
[팀활동]
✅ 오전~오후
- Alarm clock 코드 이해
- 이슈 상황 분석
- find_thread_to_wake_up : 완탐해야하는이유
- sleeping_thread_wakeup로 thread_unblock를 대체할 수 없는 이유
- idle 상태로 빠진 이유
- ready list는 누가 늘려주며, 왜 쓰레드 개수는 한정적인가
✅ 저녁
- Alarm clock 이해도 공유 (자료든 코드든 뭐든, 미리 발표 자료 만든다 생각하려함)
새벽
- 🔼 priority scheduler 강의 보고 구현 스펙 정하기 (새벽에 울렁거리고 심장 뜀이 느껴져서 동료와 함께 퇴근)
[240927 금] 11 - 12 (12H, 회복을 위해 일찍 퇴근)
✅ priority scheduler 강의 보기 [youtube]
🔼 세마포어 공부하기 (설명 불가, 우선 테케 분석해보기로) [링크] + OSTEP
- 구현 스펙 정하기
[240928 토] 12 - 03:40 (회복 요가 후 출근)
✅ 테케 분석하면서 priority scheduler, semaphore 구현 바로 시작하기
> 남은거 : donate_nest, donate_lower, donate_chain, priority_sema, priority_condvar
[240929 일] 11:30 - 02 (늦춰진 코어 타임)
🔼 priority scheduling: donate_nest, donate_lower, donate_chain, priority_sema, priority_condvar
✅ WIL 포스팅 (정리 못한채로 아무거나 올려버림..)
[240930 월] 11:30 - 05 (발표 준비로 늦게까지)
✅ priority scheduling (donate_nest 이후로 정답 블로그 해석)
✅ 발표 준비
🔥추가 정리 필요
- CS:APP 3.2 기계수준 코드 읽고 코치님 질문 답변하기
- 반효경 교수님 OS 강의 추천
📝메모
Project1 리뷰
- CPU 한개에서 여러개 프로그램을 돌리기 위한 스케줄링 방법을 배웠다. 이를 Thread라는 abstraction으로 구현했
- 임계 영역에 대해 Lock 을 설정하는데, 이 또한 누가 바꿔버리면 안돼서 인터럽트를 비활성화함 (semaphore 도 마찬가지)
- 세마포어 수학적 의미는? 단순히 변수, sema_up / sema_down 또한 +/- 연산일 뿐
- sema_down 더 낮출 수 없기에 => 이 변수에 대한 변동을 위해 blocked 되어서 기다리고 있음
- 코어가 두개 이상이면? semaphore를 사용 못함. HW 도움을 받기도 함
- 비슷한 개념은 어디에나. 예로 분산 서버
- conditional variable 구조 재밌다구..
- deadlock
- 우선순위 뿐만 아니라 서로 lock을 가리키고 있을 때 donations cycle 주의
- scheduler nice ??
- man nice
- PintOS는 왜 소수점 연산을 못하는가
- context switching 할때 interrupt frame이 왔다갔다함. 이 안에 float pointer register(xmm) 를 사용하지 않아서 저장을 못함
- stack은 thread struct 안에 있고, 그래서 magic 넘버를 둠
'💻 프로젝트 > 정글 사관학교' 카테고리의 다른 글
[WEEK9] 면역력이 떨어져도 (4) | 2024.10.15 |
---|---|
[WEEK8] 100점이 아니어도 괜찮아 (3) | 2024.10.08 |
[WEEK6] RE-START (1) | 2024.09.24 |
[WEEK5] allocator 재밌다! (1) | 2024.09.13 |
[정글 SW사관학교] WEEK4. 뒷심 부족 (6) | 2024.09.06 |