This was a low-level systems programming group project using C in the 2nd year of Computing at Imperial.1
We extended a bare-bones OS with
- priority scheduling
- multi-level feedback queue scheduling (MLFQS)
- user programs and system calls
- virtual memory with demand paging
- memory mapping
Memory safety and synchronisation were carefully considered and reasoned about throughout. For each aspect of the project, we wrote a comprehensive design document explaining and justifying our implementations.
We achieved an average of 93.5% on the project overall, and were commended on our attention to detail regarding synchronisation in the final feedback. I was also invited to serve as a teaching assistant for the next cohort.
Footnotes
-
Unfortunately, this means I can’t provide any code or documentation samples here. ↩