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.