PintOS
Gives understanding of the working of preemption of threads and implementation of priority scheduling.
The skeletal code can be downloaded from - https://code.google.com/archive/p/pintos-mac/downloads
Replace the uploaded files with the ones downloaded. Run Qemu and then run pintos.