This repository contains a collection of operating system projects implemented in the XINU OS as part of CSC 501. The projects focus on core OS concepts including process scheduling, synchronization, and virtual memory management.
xinu-projects/
│── PA1/ # Process Scheduling
│── PA2/ # Readers-Writer Locks & Priority Inheritance
│── PA3/ # Demand Paging & Virtual Memory
Implemented custom scheduling algorithms to improve fairness and prevent starvation:
- Aging-based scheduler with dynamic priority adjustments
- Linux-like scheduler using epochs, time quanta, and goodness metrics
- Runtime switching between scheduling policies
Extended kernel synchronization primitives:
- Implemented readers-writer locks supporting concurrent reads
- Designed priority-based lock scheduling policies
- Developed priority inheritance to handle priority inversion
- Ensured fairness and correctness under concurrent workloads
Built a virtual memory system with demand paging:
- Implemented memory mapping (
xmmap,xmunmap) - Designed per-process virtual heaps (
vcreate,vgetmem,vfreemem) - Developed backing store management and inverted page tables
- Implemented page fault handling (ISR 14)
- Added page replacement policies (Second-Chance & FIFO)
- C Programming
- XINU Operating System
- Process Scheduling Algorithms
- Synchronization & Concurrency
- Virtual Memory & Paging
- Page Replacement Algorithms
- Kernel-Level Development
- Deep understanding of OS internals and kernel design
- Hands-on experience with scheduling, memory management, and synchronization
- Debugging low-level systems code and handling edge cases
- Designing efficient and fair resource management strategies
-
Set up the XINU environment (based on course instructions)
-
Navigate to the desired project folder:
cd PA1 # or PA2 / PA3 -
Build and run:
make clean make -
Use provided test files (e.g.,
testmain.c) to validate functionality
- Each project builds upon core XINU kernel functionality
- Code modifications are primarily in kernel source files (
system/,paging/, etc.) - Designed and tested on an emulated XINU environment