This repository serves as an index for three operating systems projects implementing core kernel subsystems in the XINU educational operating system. Each project addresses fundamental challenges in OS design: process scheduling, virtual memory management, and file system optimization.
Implementation of two CPU scheduling algorithms to address starvation in priority-based scheduling. The Exponential Distribution Scheduler uses probabilistic selection based on exponential distribution (λ=0.1) to balance priority with fairness. The Linux-like Scheduler emulates the Linux 2.2 kernel scheduler with epoch-based quantum allocation, dynamic goodness calculation, and quantum carryover mechanisms.
Full implementation of demand paging with virtual memory support. Features include multi-level page tables (page directories and page tables), page fault handling via interrupt 14, eight backing stores emulating swap space, and the Second-Chance page replacement algorithm. Implements system calls for memory mapping (xmmap, xmunmap), virtual process creation (vcreate), and virtual heap management (vgetmem, vfreemem).
Disk defragmentation utility for Unix-style file systems. Reorganizes fragmented files by relocating data blocks to contiguous regions on disk, reconstructs multi-level indirect block hierarchies (direct, single, double, and triple indirect), and optimizes free block lists to prevent future fragmentation. Handles variable block sizes and preserves inode metadata.
Languages: C
Core Concepts: low-level kernel programming, system call tracing, process scheduling algorithms, context switching, virtual memory management, demand paging, page replacement policies, multi-level page tables, inverted page tables, backing store management, TLB management, interrupt handling, file system structures, inode management, block allocation
Complete implementations are maintained in the linked repositories. Each repository contains detailed documentation, build instructions, and technical specifications. Access is publicly available for portfolio review.
These projects were completed as part of CSC 501: Operating Systems Principles at North Carolina State University (Fall 2025), instructed by Prof. Man-Ki Yoon. The course provides hands-on experience with operating system internals through the XINU educational operating system.
Introductory lab covering foundational XINU kernel programming concepts. Implements low-level x86 assembly operations, process stack inspection, and system call tracing infrastructure. This lab established proficiency with the XINU development environment and build system.