Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Operating System Basics

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.

Projects

  • 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.

Focus Areas

  • 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

Build

Each folder is self-contained and includes its own README.md and Makefile where applicable.

cd "Cpu Scheduling"
make

Kernel module examples should be built in a Linux VM or lab environment with matching kernel headers installed.

About

Hands-on collection of C programming labs that explore core OS ideas from user space down toward the Linux kernel. The repo includes CPU scheduling, disk scheduling, threaded text search, a simple shell, custom malloc implementations, and introductory loadable kernel modules.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages