먼저 프로젝트를 시작하기 전에 개발환경 설치부터 시작하자.
Gitbook에 나와있듯이 Ubuntu 16.04, Qemu 2.5.0을 사용한다. gcc의 경우 7.4를 사용하라고 나와있지만, 7.5를 사용해도 문제는 없었다. (7.4는 구하기도 어렵고 설치하기도 복잡하니 편하게 7.5 쓰자) 그리고 gitbook에 나와있는 대로 쭉쭉 설치해가면 된다.
프로젝트 1의 경우 원유집 교수님의 슬라이드들이 많은 참고가 된다. 아니 그냥 이것만 보고 하면 된다. https://oslab.kaist.ac.kr/pintosslides/ 에서 슬라이드를 받아 참고해서 작성하면 된다. 원유집 교수님이 카이스트로 오시기 전 한양대에서 사용한 슬라이드들도 구글에 잘 검색하면 얻을 수 있는데, 그 슬라이드들은 한국어이지만 자세한 구현코드도 적혀 있어서 cheating이 걱정된다면 읽지 않는 것을 추천한다.
단 원유집 교수님의 슬라이드들은 64비트 핀토스가 아닌 과거 x86 핀토스 프로젝트 대상이라 프로젝트 1, 프로젝트 2의 argument passing 부분만 참고하면 된다.
MLFQS의 경우 nice/recent_cpu/load_avg를 계산하는 순서에 따라 미묘하게 값이 달라진다. 잘 구현했는데 fail된다면 순서를 요리조리 바꿔보자.
또한 MLFQS의 경우 너무 느리면 터진다. 효율에 조금은 신경써서 구현하자.