CS 6200: Introduction to Operating Systems

Instructional Team

Ada Gavriloska

Ada Gavrilovska
Creator, Instructor
Jarrod Parkes

Jarrod Parkes
Course Developer
Tony Mason

Tony Mason
Head TA
Patrick Ward

Patrick Ward
Head TA

Overview

Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches basic operating system abstractions, mechanisms, and their implementations. The core of the course focuses on OS support for concurrency (threads) and synchronization, resource management (CPU, memory, I/O), and distributed services. The practical component of the course teaches multithread programming, inter-process communication, and distributed interactions via RPC.

This course counts towards the following specialization(s):
Computing Systems

Foundational Course
Computing Systems Specialization Elective

Preview

Sample Syllabi

Fall 2020 syllabus (PDF)
Summer 2020 syllabus (PDF)
Spring 2020 syllabus (PDF)

Note: sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.

Course Videos

You can view the lecture videos for this course here.

Before Taking This Class...

Suggested Background Knowledge

To undertake this course, you should have taken an undergraduate level course on, or be otherwise familiar with, basic hardware and software aspects of computer systems organization. You should also be familiar with the following:

  • C/C++ programming experience
  • Ubuntu 10.04 LTS (or similar Linux experience, such as working from the command line)
  • Using Vagrant (with VirtualBox or an alternative). We also provide a Dockerfile for those with experience in using Docker.
  • Using Makefiles
  • Using GDB or an IDE with a debugger
  • Using GCC or an IDE with gcc support

Please review the CS 6200 Readiness Survey to determine your readiness to take this course.

Technical Requirements and Software
  • Browser and connection speed: An up-to-date version of Chrome, Firefox, or Edge is strongly recommended. 2+ Mbps is recommended; the minimum requirement is 0.768 Mbps download speed.
  • Operating system (64-bit OS for compatibility with 64-bit VMs):
    • PC: Windows XP or higher with latest updates installed
    • Mac: OS X 10.6 or higher with latest updates installed
    • Linux: any recent distribution that has the supported browsers installed
  • Virtual Machine: You will be provided a virtual machine (VM) useful for performing class assignments and projects. For the projects, the supplied resources are identical to those used to test your submissions. Details for downloading and installing the VM can be found in a pinned Piazza post.

Academic Integrity

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.