먼저 구현하기 쉬운 친구들부터서술하겠다.Syscall handler/* The main system call interface */void syscall_handler(struct intr_frame *f UNUSED){ int syscall_n = f->R.rax; /* 시스템 콜 넘버 */#ifdef VM thread_current()->rsp = f->rsp;#endif switch (syscall_n) { case SYS_HALT: halt(); break; case SYS_EXIT: exit(f->R.rdi); break; case SYS_FORK: thread_current()->parent_i..
Main goalImplement 4.4 BSD scheduler MLFQ like scheduler without the queues.MLFQS (Multi-level Feedback Queue Scheduling) 와 유사한 스케쥴러를 구현한다.MLFSQS like 일까?❌ Priority의 값에 따라 Ready-Queue 여럿 존재하며, 순위를 기준으로 Ready-Queue를 실행하며, Queue에 여러 쓰레드가 존재할 경우 Round-Robin 으로 큐를 실행한다. (Multi-Level)✅ Priority의 값을 일정 tick 마다 조정한다. (Feedback)여기서, 우리는 여러개의 Ready_Queue를 관리하는 것이 아니라, 한 개의 all_list 로 feedback system을 관리할..
ERROR분명 20개의 테스트가 성공해야하는데 내 도커 가상환경이 잘못된건지 계속해서 27개의 테스트가 모두 실패하고 나오는 대참사가 발생했다. 1번째 방법mac의 도커는 기본적으로 Rosetta를 사용하는데 pintOS의 공식 문서를 살펴보면 해당 옵션을 끄고 qemu를 사용해야 한다고 나와있다. 그리고 도커 이미지를 --platform linux/amd64 설정을 넣어 다시 받아주고 컨테이너를 새로 생성해줬다.docker run --platform linux/amd64 ubuntu:18.04 마지막으로 도커를 최신 버전으로 업그래이드하니 정상적으로 20/27점이 나오기 시작했다. 세상 모든 사람들을 찾아봐도 이런 문제를 겪은 사람은 나밖에 없는것같아서 이렇게 기록을 남긴다.