CS6210: Advanced Operating Systems


Contents


Overview

Advanced Operating Systems is a graduate-level course taught by Georgia Tech Professor Kishore Ramachandran that addresses a broad range of topics in operating system design and implementation, including

  • operating systems structuring
  • synchronization, communication and scheduling in parallel systems
  • distributed systems, their communication mechanisms, distributed objects and middleware
  • failures and recovery management
  • system support for Internet-scale computing

By tracing the key ideas of today's most popular systems to their origins in research, the class highlights the key developments in operating system design over the last two decades and illustrates how insight has evolved to implementation.


Course Structure

The course is divided into 3 parts, intended to be taken in order:

There is also a Refresher course, taught by Course Developer Charles Brubaker, for students who wish to brush-up on the background concepts of Advanced Operating Systems.


Prerequisites

Students are expected to have taken an undergraduate OS course, or have some experience in industry. A good understanding of the concepts in a standard textbook such as "Operating Systems Concepts," Silberschatz and Galvin (or its equivalent) will be assumed in this course. Students must also be comfortable with UNIX and C programming.

Students should also complete the GT Student Orientation course before beginning this class.


Syllabus

This wiki serves as the syllabus


Schedule

The Advanced Operating Systems class begins January 15th.

Full Schedule


Grading

25%Midterm
35%Final
40%Projects (4 projects @ 10% each)

All assignment grades will be posted through T-Square.  A 2% bonus may be added at the end of the semester for students who have been outstanding participants in the Piazza forums.


Late policy

Late work will not be accepted.  Please be sure to complete all projects and exams by the due dates, which can be found in the Schedule.


Academic Honesty

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


Staff, Participation, and Support

Course Staff

On the course staff are:

Kishore Ramachandran, Instructor (Georgia Tech)
Charles Brubaker, Course Developer (Udacity)
Wonhee Cho, Head TA (Georgia Tech)
Rajaram Shetty, TA (Georgia Tech)
Aditi Vutukuri, TA (Georgia Tech)
Eduardo Medina, Course Manager (Udacity)

Forums

We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the Course Developer, and Professor. Rather than emailing your content-related questions to the teaching staff, you are encouraged to post questions on Piazza, so that all may benefit.

Here are some guidelines for what is appropriate on Piazza

  1. DON'T include code that may be copy-pasted into project source code.  (Obviously, it's okay to refer to functions by name.)

  2. DON'T include pseudocode or code in a non-C language that may be translated and copy-pasted into project source code.

  3. DO share ideas the way one might walking together in the hallway or sitting down over lunch or talking at the whiteboard.  "I'm not sure where to get started." "What fields should this data structure have?" "Here is a clever idea I had ..." "If you use that strategy, won't you run into this problem?" "Oh man, I wasted a lot of time before I realized ...,"etc are all appropriate.

  4. You may provide an example program to illustrate your point, as long as it doesn't violate guideline 1) or 2) above.

Office Hours

Google Hangouts on Air are scheduled for 3pm on Wednesdays.

Wonhee Cho will also hold office hours via the blue chatbox on the Udacity site.  All times are Pacific

Mondays 1-2pm (Pacific) Wonhee Cho (Head TA)
Tuesdays 1-2pm (Pacific) Wonhee Cho (Head TA)

Further Support

You can always reach the Udacity course management team via the chat box or via gtaos-support@udacity.com.


Exam Information

There will be a midterm and final.  Both will be administered by ProctorU and will require some preparation on the student's part.  Be sure to read the Exam Information page, so that you know what equipment you will need.

ExamOpensClosesTime Limit
Midterm 6pm (Eastern), Thursday, March 6, 20146pm (Eastern) Friday, March 7, 201490 minutes
Final 6pm (Eastern), Tuesday, May 6, 20142pm (Eastern), Wednesday, May 7, 2014180 minutes

Projects

There are four projects for the course.  Instructions are interspersed with the lecture material, but can be found by following the links before.  The time required to complete these projects is unpredictable, so pay close attention to deadlines and leave plenty of time.

Project Written Instructions Videos and Submission Pages
User-level Threadsgtthreads Project 1
Barrier SynchronizationbarrierProject 2
Proxy Server Web Cacheproxy Project 3
Recoverable Virtual Memoryrvm Project 4

Submission Process


Project submission will be done through the Udacity site. Your code will be subjected to a build verification test designed to catch the most common mistakes and provide feedback within a few seconds.  You must pass the test in order to submit your code for grading.  Your last submission made before the deadline is the only version that will be graded.


Readings

The midterm and final will be based on the instructional lecture videos and the readings.  There is no textbook for this course. Rather, students will read a number of important research papers, gaining a solid understanding of the problem that is addressed and the solution proposed by the authors.

Papers to read


Video Downloads

You may download the videos for the class here.

You may download the video transcripts for the class here.


Minimum Technical Requirements

Minimum requirements for optimal student experience on Udacity:

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


Georgia Tech Computing Guide


Georgia Tech's Office of Student Computer Ownership issues the following Minimum Hardware Requirements to incoming undergraduates. We recommend that you meet or exceed these guidelines to ensure you have sufficient computing power to complete all course work and assignments.