GradOS1Add my vote for this tag GradOSF141Add my vote for this tag create new tag
view all tags

CSE 60641: Graduate Operating Systems – Fall 2014

Department of Computer Science and Engineering
University of Notre Dame

Time Tuesday, Thursday, 9:30-10:45 AM
Location DeBartolo 126
Instructor Prof. Aaron Striegel
384C Fitzpatrick Hall (CSE Main Office)
striegel@nd.edu, 631-6896
Office Hours: T 11, W 9, F 10
TA Richard Molina
254 Fitzpatrick Hall
On-Line Resources

Sakai http://sakai.nd.edu
Box (ND) http://box.nd.edu
IEEE Xplore http://ieeexplore.ieee.org
ACM Digital Library http://dl.acm.org

Course Overview

This is a graduate course in the theory and practice of operating system design and implementation. We will examine and discuss a wide variety of technical concepts found in operating systems both current and historical. Topics will include storage and file systems, concurrency, memory management, virtualization, and distributed operating systems. With each topic, we will study foundational work, established advanced topics, and recent research. The medium of the course will be the academic paper. The paper is the primary method of communicating new results in science and engineering. A secondary focus of the course will be gaining experience in carefully absorbing this sometimes difficult literary form. Students will be expected to engage in discussion of assigned reading in every class period.

In parallel with the readings, students will undertake a course project. Projects will be designed by the students with the advice of the instructor. Each project must be a highly literate undertaking. A significant amount of time will be spent of developing and revising the ideas to be explored. The final paper will be a highly polished result within “striking distance” of submission to an academic conference. To encourage a process of continuous refinement, the course will include a series of milestones: a project proposal, status reports, an in-class progress report, a draft paper, a final talk, and a final paper.


None. All materials will be provided through links at the course Box site linked from the course website. The expectation is that the papers will be read and discussed in groups before the discussion lecture on the particular topic.

The primary material for this course will be a selection of research papers. Some will be “classic” papers that are widely known in the research community and others will be more recent results in the literature. Each class period will involve lecture and discussion on the papers assigned for that day.

Every student must be prepared to discuss the papers assigned for each class period. Although most papers are short – usually 8-12 pages – many are quite dense and will require several readings to absorb completely. To get the most of each paper, students are recommended to form small reading groups and meet outside of class to discuss the papers. Coordination time will be provided in class in order to facilitate this.


Lectures will be held from 9:30 – 10:45 AM on Tuesday and Thursday in DeBartolo 126. You should plan on arriving a few minutes early as class will begin promptly at 9:30 AM. All reference slides will be made available before class via Box.

Lecture Capture

Notre Dame is testing a lecture capture system. This system allows us to record and distribute lectures and other audio and video recordings to you in a secure environment. Because we will be recording in the classroom, your questions or comments may be recorded. Video recordings will typically only capture the front of the classroom. If you have any concerns about your voice or image being recorded, please speak to me to determine an alternative means of participating. No material will be shared with individuals outside of your class and faculty and staff who require access for support or specific academic purposes without your express permission.

You may watch recordings on your computer, tablet or smartphone. These recordings are jointly copyrighted by the University of Notre Dame and your instructor. Posting them to another website, including YouTube, Facebook, Vimeo, or any other site without express, written permission may result in disciplinary action.

Captured lectures will be made available via an Echo360 link accessible from Sakai. You must use Sakai to access the content though the content may be played back as noted above on a variety of devices.


It is assumed that you have the equivalent of a BS degree in either Computer Science or Computer Engineering. Other majors may suffice with appropriate experience in programming and software development.

Required skills for the course include:

  • C / C++ programming: You should be reasonably well-versed in at least one programming language, preferably C or C++ programming. We will give a crash course in C programming for the purposes of the course, specifically focusing on OS-relevant C constructs.
  • Undergraduate operating systems: You should have taken a course in Undergraduate Operating Systems. The first assignment will test your background in various constructs related to OS constructs (file systems, memory allocation, concurrency).
  • Standing: Graduate standing or consent of the instructor

An entrance exam will be given in the second course lecture (August 28th). Satisfactory performance on the entrance exam will be required to continue taking Graduate Operating Systems. Those who do not perform satisfactorily will be counseled to defer Grad OS for a year and enhance their foundational skills in operating systems by taking Operating System Principles (CSE 30341) in the Spring.

Course Outcomes

Students successfully completing this course will be able to:

  • Describe and evaluate advanced concepts in operating system design and implementation
  • Compare and contrast competing architectures and implementations of operating system components
  • Describe important historical developments in operating systems in terms of architectural philosophies, influential personalities, and well-known systems
  • Design and perform a small piece of operating systems research with some guidance
  • Effectively communicate research results orally and in writing


This course serves as one of the qualifying courses for the PhD program in Computer Science and Engineering.

For each assignment, a numeric score will be assigned. Throughout the semester, you will be able to access your grades via Sakai. At the end of the semester, the numeric grades will be converted to letter grades per the following scale:

>= 94
A 90-94 A-
87-90 B+ 84-87 B 80-84 B-
77-80 C+ 74-77 C 70-74 C-
67-70 D+ 64-67 D 60-64 D-
< 60 F

The relative weight for the assignments will be as follows:

Assignments 5%
Mid-Term Exam 20%
Final Exam 25%
Course Project 50%

Collaboration and Attribution

As a Notre Dame student, you are bound by the Academic Code of Honor (http://honorcode.nd.edu). Be sure to read and understand it.

As a scholar-in-training, you will be adding your own ideas and discoveries to a body of work with many previous contributors. Collaborating with others and building upon their ideas is normal and encouraged, but you have a professional responsibility to clearly indicate what is your work, and what has been done by others. Anything that you submit – paper, e-mail, computer code, slides – with your name attached is assumed to be entirely your creation. If any part of your submission contains someone else’s words, ideas, or work, it should be clearly indicated by a proper citation or acknowledgment.

Submitting someone else’s words, ideas, or work as if they were your own is a serious violation of professional ethics and will result in severe consequences up to and including failure of the course and dismissal from the University.

Collaboration rules for the class include:

  • To understand the class readings, you may consult with anyone in the class, past or present. You are strongly encouraged to form a reading group of 3-4 people, and to meet regularly to discuss the papers at least once a week.
  • To undertake the course project, you may work singly or in pairs. To refine your project ideas, you may consult with anyone. You may employ software written by others and hardware provided by others provided that you obtain the necessary permission and give credit in your work. All software development, experimental work, and paper writing must be done by you and your partner.
  • Critically, collaboration does not mean that one person does the work one week and the other person does the work the next week. If you sign your name on the solution set, it means that you have participated and actively contributed to solving the problems.

Other Notes

  • I will frequently use class e-mail lists to distribute information related to the class. You will be expected to check your e-mail at least once between class periods.
    • E-mails will be posted as news items to the course website (Wiki).
  • Please try to ask questions if you do not understand the material.
  • As with any course, it is better to be pro-active rather reactive. While there are of course outstanding circumstances that can be appropriately addressed, a lack of planning on your part does not constitute an emergency or outstanding circumstance. Put simply, don’t procrastinate. Stop by to work out any travels before they occur rather than stopping by afterwards.

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf Syllabus.pdf r1 manage 100.3 K 2014-08-26 - 12:28 AaronStriegel Syllabus distributed on first day of class
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | More topic actions
Topic revision: r4 - 2014-08-26 - AaronStriegel
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback