HUNTERTUTORING

Operating systems

Undergraduate · CS / Programming

Syllabus focus

Topics typically covered

Standard syllabus

Processes and threads

  • Process abstraction; PCB and context switch
  • CPU scheduling: FCFS, SJF, priority, round-robin
  • Synchronization: mutexes, semaphores, monitors
  • Classic problems: producer–consumer, readers–writers
  • Deadlock: conditions, prevention, avoidance, detection

Memory and storage

  • Virtual memory, paging, and TLBs
  • Page replacement policies: LRU, clock (intro)
  • Segmentation and combined models (survey)
  • File systems: inode, directories, allocation methods
  • I/O scheduling and disk management (intro)

Core OS mechanisms

  • Processes vs threads; context switching
  • Scheduling policies and fairness tradeoffs
  • Virtual memory, paging, and TLBs (intro)
  • Synchronization: mutexes, semaphores, condition variables
  • Deadlock conditions and avoidance/detection
  • File systems metadata and crash consistency (survey)

STEM / applied

Implementation themes

  • System call interface and kernel modules (survey)
  • Implementing a simple shell or scheduler simulation
  • Memory-mapped files and copy-on-write (intro)
  • Containers and cgroups/namespaces (intro)
  • Tracing tools: strace, perf, eBPF overview

Security and reliability

  • Access control models: DAC, MAC (intro)
  • Kernel exploit mitigations (ASLR, NX) survey
  • Logging, crash dumps, and postmortem debugging
  • Distributed file systems and consistency (intro)
  • Case studies: Linux, Windows, or xv6 teaching OS

Systems programming practice

  • System calls and writing small userland tools
  • Concurrency bugs and ThreadSanitizer (intro)
  • Implementing a simple shell or allocator lab
  • I/O stacks and buffering performance
  • Containers as OS isolation primitives (survey)
  • Capstone: OS lab milestone with tests and writeup

Notes

Often requires a systems prerequisite. Projects may use xv6, Pintos, or Linux kernel modules.