Overview
Implemented core operating system functionalities as part of a course project. The project involved adding kernel threads, synchronization primitives, and scheduling policies to the xv6 operating system. The project was implemented in C and x86 assembly. The souce code is available on GitHub in the form of patch files.
Threads and Synchronization
Implemented kernel threads with POSIX-compatible synchronization primitives including:
- Spinlocks
- Mutexes
Scheduling
Implemented the following scheduling policies:
- SJF (Shortest Job First)
- Hybrid (Combination of Round Robin and SJF Scheduling)
Memory Management
- Added paging and swapping mechanisms using Least Recently Used (LRU) policy for page replacement.
- Enabled Lazy Memory Allocation which enhances flexibility and efficiency of memory usage.