This is the project I have developed for the Saarland University OS course!
You can find more information and implementation details here:
-
Implemented an alarm clock without busy-waiting
-
Implemented producer-consumer functions so that users can achieve producer/consumer communication through a bounded buffer.
-
Implemented priority scheduling.
-
Wrote a design document based on my implementation.
-
Implemented Process Termination Messages: Whenever a user process terminates, because it called
exitor for any other reason, prints the process's name and exit code. -
Implemented argument passing to processes.
-
Implemented these system calls: halt, exit, exec, wait, create, remove, open, filesize, read, write, seek, tell, close.
-
Added denying writes to executables.
-
Wrote a design document based on my implementation.
-
Implemented frame table
-
Implemented supplemental page table and page fault handler
-
Implemented stack growth
-
Implemented page reclamation
-
Implemented random eviction
-
Implemented an eviction algorithm
-
Wrote a design document based on my implementation.
The documentation provided by instructors:
- Introduction:
- Reference Guide: design and inner workings of the key Pintos components and the code.
- Debugging Tools: tools and suggestions for debugging Pintos
- Project Design Document: example design document for your projects
- Coding Standards: suggestions for writing clean and easy to read code
- Bibliography: pointers to further documentation and resources.