CS 3214 Computer Systems

From Gobblerpedia
Jump to: navigation, search

CS 3214: Introduction to Computer Systems is a required Computer Science course that focuses on operating system principles as they are relevant to appliation-level programmers. The course was designed by Godmar Back to replace CS 3204: Operating Systems, and serves as a prerequisite to the Systems and Networking Capstone course. In addition to Back, the class has historically been taught by William McQuain, Ali Butt, and Dennis Kafura.

Topics covered include: operating systems design and architectures; processes, threads, synchronization techniques, deadlock; CPU scheduling; system call interfaces, system level I/O and file management; shell programming; separate compilation, loading and linking; interprocess communication (IPC); virtual and physical memory management and garbage collection; network protocols and programming; virtualization; performance analysis and optimization.

The course tends to have the same projects year-to-year, including:

  • Buffer lab, which requires students to use buffer overflows to execute undefined behavior
  • A malloc implementation
  • An extensible shell (esh) that can run modules written by other students
  • A threadpool
  • A multithreaded sysstatd web server