CS 8803-002: Introduction to Operating Systems

Course Creator and Instructor

Ada Gavriloska
Ada Gavrilovska
Creator, Instructor

Course Developer

Jarrod Parkes
Jarrod Parkes
Course Developer


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.


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. Prior programming experience with C is recommended, as C is required for the practical component of this course. Also, any experience using command line interfaces in Linux will be useful when creating and building projects for this course.

Course Preview



Students will be evaluated via programming assignments, a midterm and final exam, and their participation in class.

  • Exams - Exams will be proctored by ProctorU.
  • Programming Assignments (Projects) - All programming assignments will be submitted through T-Square.
  • Class Participation - Class participation will be determined by your completion of Udacity quizzes and by your contributions on the class forum. *Note: For the Udacity quizzes, you are not required to get the correct answer on the first try. You should feel free to submit answers even if you are not 100% sure that you are correct. If you do not get the correct answer after several attempts, try watching the solution video, and then come back to the quiz. Only your last submission will be checked, so if you get it right, then change you answer later, you will not get credit for that quiz.


Detailed grading criteria will be provided for each deliverable. The following shows how each graded item counts towards your overall grade for the course:

  • Midterm Exam - 25%
  • Final Exam - 30%
  • Programming Assignments (Projects) - 40%
  • Class Participation - 5%

Required Course Readings

There is no required textbook for this course. However, it is recommended that students have access to a solid, foundational operating systems book. Here are our recommendations:

Minimum Technical Requirements
  • Browser and connection speed: An up-to-date version of Chrome or Firefox is strongly recommended. We also support Internet Explorer 9 and the desktop versions of Internet Explorer 10 and above (not the metro versions). 2+ Mbps recommended; at minimum 0.768 Mbps download speed
  • Operating system - 64-bit OS for compatibility with 64-bit VM's: - 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 on the Class Resources Page

Other Info

Schedule Policies
  • All assignments are due no later than 11:59 AOE (11:59 PM) on the listed date
  • No late assignments will be accepted
  • Required readings should be completed before the class which they are listed
  • Students should complete the GT OMS Orientation before the first day of class
Academic Honesty

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code.