CSE 624, Spring 2012: Advanced Operating Systems



Syllabus and Policies

  1. Prerequisites
  2. Who Can Take This Class
  3. Taking This Class for 522 Credit
  4. Examinations
  5. Project
  6. Textbooks
  7. Reading and Discussion
    1. Lateness
  8. Collaboration vs. Cheating
  9. Grading
  10. Special Assistance
  11. Academic Integrity
  12. Critical Incident Management
  13. Acknowledgements

Prerequisites

  1. The officially published prerequisite for this class is CSE-506, the graduate level operating systems course. It is necessary background, as we'll read a lot papers quickly without much time for catching up on the basics. The course assumes an understanding of topics in operating systems such as synchronization, virtual memory management, scheduling, and file systems.
    If you've taken an equivalent course elsewhere, and it includes actual, substantial programming experience in any Unix kernel, please speak to me first to get an approval to take this class. In some cases, substantial low-level systems programming experience in industry is sufficient. If you do not have experience with kernel programming, you may not take this course.
  2. The course project will be largely independent. You will be responsible for learning the tools you need to complete the project you select. Likely tools required for the projects include C programming, basic UNIX commands, especially including debuggers and compilation tools.

If you do not fulfill the above requirements, you should consider very strongly taking CSE-506 instead of this course.

Other recommendations which would greatly help you in this class:

Who Can Take This Class

CS graduate-level courses are generally intended only for CS graduate students in a CSE degree program such as the MS or PhD programs!

If you are a CS PhD student and registration is full, please come to class and let me know if space still isn't available after the first week.

If you do not fulfill the class prerequisites, you may not take this class without instructor permission.

Unfortunately, the university registration system does not always validate prerequisites or enforce registrations based on degree programs or department affiliations. Furthermore, we have limited resources available for this class: seating, teaching staff, and laboratory facilities. Therefore, at my discretion, I will collect information about each student who wants to take this class and correlate it with university records. Then I will decide who can take the class. Note that this is independent of whether you are already registered for the class or not. Priority will be given to CS graduate students.

In either case, I will endeavor to allow everyone who has the proper background to take this class, including undergraduate students and non-CS majors.

Finally, the lab resources of this class are limited and thus reserved only for registered students. No auditors are allowed in this class.

Taking This Class for 522 Credit

This course is also listed as a 522, or Special Project in Computer Science. If you meet the prerequisites for the course, you may take it for 522 credit. You may not take the course for both 624 and 522.

522 Requirements. The requirements for 522 are the same as 624, except that your project will be held to a higher standard for grading (i.e., a larger implementation will be required). You may not work in a group if you take this course for 522 credit.

Examinations

There will be two exams in this course: a midterm exam, to be held in-class, and a final exam, which will be held during Finals Week at the officially scheduled date/time. See the course schedule for specific exam times and locations. Both exams will be closed book.

There will be an in-class midterm on Tuesday, February 28, 2012. Please mark your calendars now. If you have a conflict with the midterm, tell the instructor during the first two weeks of class, and we will schedule a makeup for a time before the exam is given to the rest of the class.

Special offer: you can write your own exam questions! Submit a question with your solution in advance of the exam, and if we like it, it will appear on the exam.

Course project

This course requires a substantial systems research project, that will give you experience in building, booting and running an operating system. The assignments will also expose you to methodological systems issues such as how to model, measure and report performance, how to design a workload to test kernel functionality, and the dependence on workload for the evaluation of a system feature. Finally the assignments will expose you to how to write about systems, their design, implementation, and measurement.

These assignments should demystify the operating system, convincing you that the OS really is just a program. Sometimes puzzling system behavior can be understood and worked around by reading and understanding the source code of the OS. Why did mmap return ENOMEM? There are several distinct possibilities that you can see in the code. These assignments might even give you a bit of practical knowledge, for example allowing you to get Linux to recognize your fancy, new USB device.

Textbooks

There is no textbook for this course. The course is based on a collection of journal and conference papers that describe the history and state of the art in operating systems. The list of papers and schedule will be posted on this site. You must read the papers before class. At a minimum we recommend two close readings. We will provide most papers online; those that are only available in hardcopy will be provided about a week before they are needed.

Reading and Discussion

Most of the work in this course consists of reading journal and conference papers. Most of the papers we read will be good, and all are influential. We will cover one to two papers at each class meeting. This class will be primarily discussion based. Active discussion will (hopefully) give you a non-trivial understanding of the material.

This class is larger than ideal for a discussion-based class. I believe we can overcome this hurdle if everyone comes to class well prepared to participate in (or lead) discussions. If you skim papers and space out during discussion, you are doing your colleagues a disservice by lowering the level of discussion. The other problem, of course, is that individually you will learn much less if you follow that approach. The assignments and grading, therefore, are focused on creating an atmosphere where everyone comes to class well prepared for discussion.

Class time will not be used to rehash the material in the papers. Instead, it will be used to highlight the important points and discuss some of the more interesting features. There will be as much as 10-15 hours of reading per week. Do not take this course unless you are willing and able to do a lot of reading.

Paper critiques. We will read about 28 "core technical" papers in class (plus a number of "background" and "professional development" papers.) For each of the core technical papers, you will prepare a (approximately) 1-page written critique (here is a template). This critique must be typeset (no handwritten critiques will be accepted) and must be turned in before the start of the class that discusses the paper. You may skip up to 4 critiques with no grading penalty.

Class participation. The class will provide ample opportunity to get involved in the discussions, and if you do not regularly participate in discussions, you will not get as much out of the class as you could. Your class participation will be based on three factors: (1) the instructor's assessment of whether you were regularly involved in the discussions over the course of the semester, (2) turning in acceptable critiques as described above, (3) the in-class presentation of at least one paper (4) there might be several pop quizzes on the reading assignments over the course of the semester. If you turn in a critique (e.g., claim to have read and understood the paper) but your quiz indicates that you don't understand the paper, we will lower your class participation grade. (Note that if you don't turn in a critique for a class, you are "exempt" from taking a quiz for that class.)

Written homeworks. We may assign additional written homeworks that cover basic experimental skills useful for studying operating systems (cache simulation, network simulation, and simple statistics and data analysis). Unless otherwise noted, the homeworks will be done individually.

Collaboration vs. Cheating

I strongly encourage you to discuss the papers and the homeworks with anyone you can. That's the way good science happens. As a professional, you should acknowledge significant contributions or collaborations in your written or spoken presentations.

The paper critiques should reflect your understanding of the paper. It is not acceptable to turn in a summary if you have not made an honest effort to read the paper. If you don't have time to read a paper before a class, make use of one of your skip credits. Never read another student's summary before you have turned in your own.

Unless otherwise stated, the homeworks and programming assignments must be done individually. You may orally discuss the homeworks with anyone, but you may not look at anyone else's code and you may not allow anyone else to look at your code.

Exams are to be done individually. They may only be discussed with the instructor and TA.

Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.

I am very serious about not tolerating academic dishonesty. In a graduate class, when I am able to establish that academic dishonesty has occurred, I generally assign the student in question a grade of "F" for the course and forward the particulars to the Graduate Program Director (GPD) for inclusion in the student's folder; the GPD may decide to forward the student's case to the CS Department Graduate Grievance and Appeals Committee (G-GAC). If the student is a repeat offender, I ask that the Graduate Program Director initiate proceedings to dismiss the student from the degree program. For more information, see the Graduate Academic Dishonesty departmental procedures. Besides, we're here to learn. Do you want to get a good job and impress your peers with your programming skills, or get fired by your boss for failing to get the job (or worse, get sued for copying someone else's work).
For more information, see the Academic Judiciary Web site.

Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.

Grading

The course will be graded with +/- grades (e.g., A, A-, B+, etc.).

The final grade will be determined as follows: The raw scores obtained by all students on each assignment and exam will be standardized for that particular assignment or exam either (at my discretion) by converting them to percentile scores, or else by applying a linear transformation to map the scores to a standard [0, 100] scale. A weighted sum of the resulting standardized scores will then be formed (with weights as shown below) to obtain a composite score for each student.

Finally, the composite scores will be ranked, and I will apply a subjective method of my choice to determine the cutoffs for each grade category. Absolute performance standards, the distribution of composite scores, information derived from late homeworks, and class participation are factors likely to contribute to this decision.

Generally speaking, to get at least a B+ in this class, your overall numeric grade in this class must be above 75% of the total possible number of points (not counting extra credit). Note that this does not mean that everyone who gets less than 75% will automatically get a grade less than B+.

The exams are closed book and include a mix of multiple-choice, short answer, and programming questions.

Re-grading: after each grade is given out, you will have a chance to discuss it with the grader and the instructor. You must first discuss your grade with the grader, within the first 48 hours after the grade has been handed back. It's highly recommended that you take some time to review your entire grade before discussing it with the grader. After discussing your grade with the grader, if you wish, you may discuss it with the instructor during office hours or by appointment. If, after discussion with the grader or instructor, you ask for an assignment to be regraded, the entire assignment will be regraded. Your grade can be improved or harmed by regrading.

Special Assistance

The Provost has required that all faculty include the following statement in their syllabus handouts:

If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Academic Integrity

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Faculty are required to report any suspected instances of academic dishonesty to the Academic Judiciary. Faculty in the Health Sciences Center (School of Health Technology & Management, Nursing, Social Welfare, Dental Medicine) and School of Medicine are required to follow their school-specific procedures. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at http://www.stonybrook.edu/uaa/academicjudiciary/

Critical Incident Management:

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures.

Acknowledgements

Portions of this course design, organization, policies, syllabus, web design, etc. came from Emmett Witchel and Erez Zadok.


Last updated: Sat Mar 03 20:31:18 -0500 2012 [validate xhtml]