CS 6210 - Advanced Operating Systems

Course Description

CS 6210 (Advanced Operating Systems) is a graduate level course that covers in detail many advanced topics in operating system design and implementation. It starts with topics such as operating systems structuring, multithreading and synchronization and then moves on to systems issues in parallel and distributed computing systems. There is no textbook for this course. Rather, we will read and discuss a number of important research papers related to these topics. For each paper that is covered in class , students are expected to gain a solid understanding of the problem that is addressed by the paper, and the solution proposed by the authors.

Please check out the Sample Class Schedule for a sample schedule of deadlines, and the required reading in the course.

Note: Paper list would morph over time.

Papers listed under "Schedule of Class Lectures" will be covered in class. Papers listed under "Additional Papers" are for reference only. These papers will cover topics that extend or supplement the material in papers that are covered in class. Students will be expected to have some understanding of the results in these papers but will not be tested on them.

Course Content

To access the public version of this course's content, click here , then log into your Ed Lessons account. If you have not already created an Ed Lessons account, enter your name and email address, then click the activation link sent to your email, then revisit that link.

 

Prerequisites

  • CS 3210 or equivalent undergraduate OS course. 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 CS 6210.
  • CS 3210's prerequisites or equivalents (such CS 2200).
  • Good knowledge of UNIX and C programming.
  • To gain a better understanding of the prerequisite concepts necessary for success in this course, please take this brief diagnostic preparedness test. This test is for prospective students' personal purposes, to gauge readiness for this graduate-level Advanced Operating Systems course.
  • Another resource for students to utilize in gauging preparedness is the CS 6210 Prerequisites and Concepts list . Please take the time to review the concepts in this document. If a student does not feel comfortable with the listed tasks, it may be beneficial to review this subject matter prior to registering for the course.
 

Grading

 

23% midterm
23% final
40% projects (4 projects @ 10% each)
10% class participation (see participation section below)
2% project 1 pre-lab
2% homework assignment

Note: This grade breakdown is tentative and subject to change, for a little while longer at least.

 

Participation

Your class participation grade is composed of four main parts:

  • Regular attendance to and participation in the class lectures. (worth 1%)
  • An index card with your name, picture and something unique about yourself (worth 1%)
  • A summary of several of the papers on the reading list (approximately one page; sign up on the wiki). Paper summaries are due by the end of the section in which the paper appears. In other words, if you are covering an "OS Structures" paper, you should post your summary before the first lecture on "Communication in Shared Memory Multiprocessor Systems." (worth 4%)
  • Notes for several class periods (sign up on the wiki). These notes are due a week from the day of the lecture. (worth 4%)
 

Collaboration Policy

This class will consist of some individual assignments and some team projects.  In order to facilitate a collaborative learning environment, you may discuss the projects and different approaches and techniques, as well as problems you may be having with each other.  However, all the code you turn in must be written by you (or your team, if it is a team project).  For written homeworks, similarly, you may discuss the problems and concepts, but the actual answer that you submit must be written entirely by you.

We will select random subsets of students to interview about their project submissions (since the class is too large to interview everybody about every project).  In an interview, you will walk through your code with the TA and explain how it works.  Therefore it is important that you understand your own code and are able to explain it.

Honor Code

All students in this class are expected to know and follow the Georgia Tech Honor Code. You can read the honor code at this webpage:

http://honor.gatech.edu/plugins/content/index.php?id=9

Zero tolerance for any infraction.  It pains me to say this but there have been incidents of infractions in previous semesters and the consequence is very serious and wil affect your academic standing severely.  So please do not put yourself (or me) in that situation.



 

 

Optional Reference Texts

  • Operating Systems Concepts, Silberschatz and Galvin.
  • Computer Systems: An Integrated Approach (CS 2200 textbook), Ramachandran and Leahy.
  • OS: Advanced Concepts, Maekawa, Oldehoeft. Addison-Wesley.
  • Distributed Systems, Sape Mullender, Addison-Wesley.
  • Distributed Operating Systems, Andrew S. Tanenbaum, Prentice Hall.
  • An Introduction to Programming with Threads, Andrew Burrell.
    • a pdf is available in the class Resources
  • Multithreaded Programming with Pthreads, Chapter 4, Bil Lewis, Daniel J. Berg.