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
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.
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.
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.
This wiki serves as the syllabus
The Advanced Operating Systems class begins January 15th.
|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 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.
All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code.
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)|
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
DON'T include code that may be copy-pasted into project source code. (Obviously, it's okay to refer to functions by name.)
DON'T include pseudocode or code in a non-C language that may be translated and copy-pasted into project source code.
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.
You may provide an example program to illustrate your point, as long as it doesn't violate guideline 1) or 2) above.
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)|
You can always reach the Udacity course management team via the chat box or via firstname.lastname@example.org.
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.
|Midterm||6pm (Eastern), Thursday, March 6, 2014||6pm (Eastern) Friday, March 7, 2014||90 minutes|
|Final||6pm (Eastern), Tuesday, May 6, 2014||2pm (Eastern), Wednesday, May 7, 2014||180 minutes|
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 Threads||gtthreads||Project 1|
|Barrier Synchronization||barrier||Project 2|
|Proxy Server Web Cache||proxy||Project 3|
|Recoverable Virtual Memory||rvm||Project 4|
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.
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.
You may download the videos for the class here.
You may download the video transcripts for the class here.
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'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.