A hands-on collection of C systems programming labs covering core operating-system concepts from user-space tools to introductory Linux kernel modules. This is a part of Operating Systems course in CS at WashU.
- CPU Scheduling - FCFS, SJF, and STCF scheduling simulation.
- Disk Scheduling - FCFS, SSTF, SCAN, CSCAN, LOOK, and CLOOK disk request simulation.
- MCGrep - threaded grep-style search using POSIX threads and
mmap. - Simple XSSHell - a small shell with scripts, variables, built-ins, and process launching.
- Efficient Mallocs - allocator experiments using free lists and segregated free lists.
- Kernel Programming - basic loadable Linux kernel module examples.
- Scheduling algorithms
- Process control and shell behavior
- Threading and file I/O
- Dynamic memory allocation
- Linux kernel module basics
- procfs and scheduler-visible process state
Each folder is self-contained and includes its own README.md and Makefile where applicable.
cd "Cpu Scheduling"
makeKernel module examples should be built in a Linux VM or lab environment with matching kernel headers installed.