크래프톤정글/PintOS 5

크래프톤정글 PintOS; Project 3 Diagram (Anonymous Page 까지)

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 참고: 카이스트 핀토스 pdf, 핀토스 GitBook 다 완전히 구현하지 못했다. project 3에서 주요하게 다루지 않는 project 1,2의 내용은 지웠다. (더 깔끔하게 만들 수 있다면 좋겠지만.) project 2 보다 더 어려웠다. 그 이유는 일단 초반에 가상메모리 시스템을 이해하고 체화하는 것이 쉽지 않았고(ㅠㅠ), project 3부터는 코드를 설계하는데 나의 결정을 많이 반영하도록 의도하고 있어서, 고민하고 파악하는 시간이 project 2보다 더 길었다. 구현해야 할 양도 많기도 많고… 그럼에도 불구하고 처음보다 핀토스 디버깅과 C에 익숙해졌음을 체감했고, 다이어그램을 어떻..

크래프톤정글 PintOS; Project 1, 2 Diagram

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 참고: 카이스트 핀토스 pdf, 카이스트 핀토스 강의, 핀토스 GitBook project 2부터 만들기 시작해서 사실상 project 1의 내용은 거의 담지 않음 도식화를 하지 않으면 안되겠다고 생각하게 된 계기 방대한 코드를 파악 및 이해하기 어려움 (+ 그에 따른 코치님의 방법론 조언) 마침 옵시디언에서 다이어그램 기능 업데이트 (타이밍 굿!) 코드를 구현하면서 필요한 디테일들이 각종 자료 여기저기에 산재되어 있어서, 이것들을 한 곳에 모아서 보고. 동시에 프로그램의 흐름을 알 수 있으면 좋겠다고 생각. 일종의 지도같이 사용할 수 있었다. 방대한 코드에서 길을 잃지 않게 도와 줌. 이것도..

크래프톤정글 9-10주차; WIL - PintOS Project 3 Virtual Memory

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 노란색 하이라이트는 블로그 주인의 생각 + 개인적으로 이해가 더 필요한 부분을 표시한 것입니다. 특별히 더 중요한 개념으로 표시한 것이 아닙니다. TIL/WIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2023-01-03, 2023-01-07 PintOS KAIST GitBook: Project3: Virtual Memory - Introduction 참고: https://casys-kaist.github.io/pintos-kaist/project3/introduction.html 우리의 지금 OS 멀티플 스레드 적절한 동기화 다양한 유저 프로그램을 동시에 load 하..

크래프톤정글 8주차; WIL - PintOS Project 2 User Program

개인적으로 공부하면서 지속적으로 정보를 추가, 수정, 삭제합니다. 정확하지 않은 부분 피드백 주시면 감사합니다. 노란색 하이라이트는 블로그 주인의 생각 + 개인적으로 이해가 더 필요한 부분을 표시한 것입니다. 특별히 더 중요한 개념으로 표시한 것이 아닙니다. TIL/WIL 노트의 일부를 정리해서 적합한 카테고리의 노트 항목에 추가합니다. 2022-12-26, 2022-12-27 C언어 - strtok_r() 함수 사용 참고: https://www.it-note.kr/86 왜? argument passing 구현에서 명령행 인자 parsing을 위해 사용한 함수. 어떻게? ☞ C언어 문법 & 개념 정리 노트에 추가 C언어 - memset 함수 사용법 참고: [C언어/C++] memset 함수 메모리 초기화..

크래프톤정글 8주차; WIL - PintOS Project 1 Threads

2022-12-16, 2022-12-17 PintOS 프로젝트 - 쓰레드와 동시성 참고: https://omscs.gatech.edu/cs-6200-introduction-operating-systems-course-videos 무엇? 쓰레드는 무엇인가? 쓰레드는 장난감 샵의 일꾼! 이 일꾼은 능동적인 주체다 장난감 주문을 위한 일을 한다 = 쓰레드는 프로세스를 수행한다 다른 일꾼들과 동시에 일한다 = 많은 쓰레드는 동시에 일한다(동시성의 개념) 다른 일꾼들과 동시에 일할 때 협업이 필요하다 효율적으로 일하기 위해, 도구, 일하는 공간, 부품 등을 서로 공유한다 == I/O 기기, CPU, 메모리 등을 공유한다 → 어떤 쓰레드가 이러한 자원에 접근할 수 있는지 어떻게 결정할까? 스레드와 프로세스는 어떻게..