PintOS Project 4: File System

먼저 나는 엑스트라를 안 해서 Buffer cache가 사용되면 어떻게 코드를 작성해야 할 지는 모른다. "We recommend integrating the cache into your design early."라 적혀있는 것을 보면... 그러니 엑스트라까지 할 생각이면 이 글을 참고하는게 독이 될 수도 있다. 프로젝트 4는 시작하기 전에 꼭 FAT에 대해 이해하고 시작하자!!!‌‌ 무지성 코딩으로 시작하면…

PintOS Project 3: VM

핀토스 프로젝트 3을 진행하며 중간중간 적었던 내용들을 정리했다. 이번 프로젝트 3의 경우 무엇보다 코드를 이해하는 것이 중요하다. 먼저 mmu.c에 어떤 함수들이 있는지 읽고 vm.c를 작성하기 시작하자. 또한 페이지가 어떻게 로딩되는지 알아볼 때는 process.c의 load 함수를 읽어보면 좋다. page fault 핸들링 또한 다시 읽어보자. 무지성으로 달려들었다가는 처음부터 다시…

PintOS Project 2: UserProg

핀토스 프로젝트 2를 진행하며 중간중간 적었던 내용들을 정리했다.‌‌‌‌‌‌ 직접적인 코드 언급은 없으니 후배님들은 치팅 걱정 없이 참고해도 될 것이다. process_create_initd * tokenize file name and call thread_create with initd exit * print exit message in syscall handler.(skeleton says to implement in process_exit, but it may be complex…

PintOS Project 1: Threads

먼저 프로젝트를 시작하기 전에 개발환경 설치부터 시작하자. Gitbook에 나와있듯이 Ubuntu 16.04, Qemu 2.5.0을 사용한다. gcc의 경우 7.4를 사용하라고 나와있지만, 7.5를 사용해도 문제는 없었다. (7.4는 구하기도 어렵고 설치하기도 복잡하니 편하게 7.5 쓰자) 그리고 gitbook에 나와있는 대로 쭉쭉 설치해가면 된다. 프로젝트 1의 경우 원유집 교수님의…

PintOS Project를 시작하며

이 글을 읽는 자는 분명 막막함 속에서 희망을 찾기 위해 동분서주하고 있을 것이다. 물론 나 또한 핀토스를 진행하면서 똑같은 처지를 경험했기에, 최소한 갈피를 못 잡고 뻘짓하는 일이 없도록 이 글을 적는다. 먼저 말하고 싶은 점 하나. 이 블로그의 숙제 project 관련 글들은 내 코드를 단 한줄도 넣지 않을 것이다. 단순히…