Post

xv6 project

xv6 linux scheduling nice 구현

process간 우선순위를 설정하기 위해, nice value를 사용합니다. 이는 process struct 내부에 구현이 되어야 합니다. process struct는 proc.h 내부에 구현되어 있습니다. 이를 추가해줍니다. 완료

fork시, 자식 프로세스는 부모 프로세스의 nice를 상속받습니다. 따라서 fork() 함수를 nice value를 상속받도록 수정합니다. fork 함수는, proc.c에 구현되어 있습니다. 상속받는 내용을 추가해줍니다. 완료

또한, syscall.h에 추가하고자 하는 syscall의 number를 추가합니다. 완

함수를 실행하기 위하여, 작업을 합니다. user.h에 system call을 추가하고, 완

syscall.c에 추가합니다. 완

또한, 타이머 인터럽트를 제거합시다. 이는 trap.c에 구현되어 있습니다.

완료

20으로 설정을 하자

이제 사전 작업이 끝났습니다.

기존의 xv6 scheduling을 linux scheduling으로 뜯어고쳐 봅시다.

1
clear 

명령어를 통해 터미널의 내용을 지우고, 본격적으로 구현해봅시다.

이제 sysproc.c에 우리가 구현하고자 하는 함수를 추가합시다.

This post is licensed under CC BY 4.0 by the author.