Enhanced xv6 Operating System

  • Skills: Operating Systems · Concurrent Programming · Memory Management · Process Scheduler · Operating Systems Design · C (Programming Language)
  • Github URL: Project Link

This project reimagines the xv6 operating system, originally based on Unix Version 6, to leverage modern RISC-V multiprocessor systems with cutting-edge enhancements in system calls, scheduling, and memory management.

🔑 Key Features
1️⃣ System Call Tracking:
Added getSysCount to monitor system call usage for a process and its children. Example: Track system calls like open to optimize process performance.
2️⃣ User-Level Alarms:
Introduced sigalarm and sigreturn for periodic CPU time notifications and user-level signal handling.
3️⃣ Advanced Scheduling Policies:
Lottery-Based Scheduling (LBS): Fair scheduling via ticket allocation for processes.
Multi-Level Feedback Queue (MLFQ): Dynamic priority adjustment to prevent process starvation.
4️⃣ Lazy Copy-on-Write (CoW) Fork:
Efficient memory sharing and private duplication for write-intensive operations, reducing resource overhead.
💻 Technical Highlights
Built for RISC-V systems and tested using QEMU. Customizable build options for alternative schedulers. Focused on scalability, performance, and memory efficiency.
📑 Acknowledgments
This project builds upon the foundational xv6 developed by MIT. It showcases the power of reengineering classical systems to meet modern requirements.