This repository contains the Pintos operating system with features I've implemented which are described in Stanford's CS140 course.
They include:
-
Thread scheduling (in branch master)
- Non-busy-wait sleeping
- Priority round-robin scheduling
- Priority donation with mutexes
- Multilevel feedback queue scheduler similar to the 4.4BSD scheduler
-
User programs (in branch master)
- POSIX-like process management system calls like
exec
andwait
- Common POSIX-like file I/O systems calls
- Argument passing to
main
function - Denying writes to executable files of processes
- POSIX-like process management system calls like
-
Virtual memory (in branch project3)
- Demand paging
- Swapping pages to disk blocks
- Memory-mapped files
- User process stack-growth