COMP 730: Operating Systems



Syllabus and Policies

  1. Bulletin Description
  2. General Course Info
  3. Instructor Info
  4. Textbooks and Resources
  5. Course Description
  6. Target Audience
  7. Prerequisites
  8. Goals and Key Learning Objectives
  9. Course Requirements
    1. Lecture Recordings
  10. Grading
    1. Project Teams
  11. Course Policies
    1. Lateness
    2. Collaboration vs. Cheating
  12. Accessibility Resources
  13. Counseling and Psychological Services
  14. Community Standards
  15. Title IX Resources
  16. Disclaimer
  17. Acknowledgements

Bulletin Description

Theory, structuring, and design of operating systems. Sequential and cooperating processes. Single processor, multiprocessor, and distributed operating systems.

General Course Info

Term: Spring 2021
Department: COMP
Course Number: 730
Section Number:001
Time: MW, 11:00-12:15
Location: Zoom
Website: http://www.cs.unc.edu/~porter/courses/comp730/s21


Instructor Info

Name: Dr. Donald Porter
Office: Sitterson 319
Email: porter at cs dot unc dot edu
Phone: 919-590-6044
Web: http://www.cs.unc.edu/~porter
Office Hours: M 10:30--11am, T 1--2pm, or by appointment.

Textbooks and Resources

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.

Course Description

Students will study advanced operating system topics and be exposed to recent developments in operating systems research. In addition to being conversant in classic and recent research papers, this course aims to teach students to read research papers critically, formulate new research questions, and evaluate these questions experimentally. Thus, a significant portion of the course grade is determined by class participation and a course research project.

Topics to be covered include: operating system design, virtual memory management, virtual machines, OS interaction with the hardware architecture, synchronization and communication, file systems, protection, and security.

Target Audience

The course is intended for graduate students and advanced undergraduates in computer science. Unlike prior courses in operating systems, which cover best practices, the focus of this course is on how to conduct and evaluate research in operating systems. Certainly, this is a critical skill for students interested in pursuing a Ph.D. Even for students planning to go to industry, say as a technical leader on a product, one must discern whether an exciting new idea is appropriate for a given situation; the same skills apply to this scenario.

Prerequisites

The prerequisite for this class is COMP 530 (Operating Systems - undergraduate), or a comparable course at your undergraduate institution. For students who took COMP 530 at UNC, I would recommend taking this course if you have earned at least a B+ in COMP 530; you will likely struggle with the material if your COMP 530 grade was lower. COMP 530 provides necessary background.

Goals and Key Learning Objectives

Students will learn how to read and critique research papers in operating systems, as well as gain familiarity with seminal papers, ideas, and history within the field. Students will also gain hands-on experience with research in operating systems by completing a small research project as part of the course.

Course Requirements

The course is taught in an interactive discussion style. 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.

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 an (approximately) 1-page written critique, which you can submit via gradescope (where you can also see a template/form). This critique 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.)

Class Recording

This course may not be taken asynchronously. Active, synchronous discussion is fundamental to the learning goals, and watching recordings offline is not an adequate substitute for attendance and participation.

Nonetheless, class sessions will be recorded and made available to the students in the class. These recordings are intended to help students review the material after attending class, or to catch up after an occasional absence, but are not a substitute for attending in person. If lecture recording substantially harms attendance, it will be discontinued.

Grading

The final grade will be determined as follows: A weighted sum of the assignment 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.

Project Teams

Groups: You may form groups of up to three students for the course project. All group members must be enrolled in the course, and listed in comments in the handed-in assignment.

Deadbeats: All group members are responsible for all code and text that is handed in. Group members are responsible for ejecting students that are not contributing, or adjusting group composition on future assignments. A word to the wise: Think carefully about who you work with - a poor group member can harm your grade beyond repair. Further, it is my experience that when students do not substantially participate in programming homeworks, but rather let their partner(s) do the work for them, they tend to perform poorly on exams.

The instructor reserves the right to quiz or otherwise question any student about their understanding of work handed in; failure to explain the code satisfactorily is grounds for losing all points on the assignment. If an assignment is found to constitute academic dishonesty, all group members are considered responsible and will all be reported to Honor Court.

Changing Groups: If something goes horribly wrong, you may change or reform groups on the project, after obtaining permission of the course instructor.

Course Policies

There is no final exam for this course.

Lateness

Each student may skip four reviews over the semester without a grading penalty. Late reviews will not be accepted. The project is also due on the last day of classes, and extensions will not be allowed, so that students may focus on preparing for other exams.

Conflicts with other courses, research deadlines, holidays, etc. are unavoidable. Thus, you are expected to budget these missed reviews to account for your other obligations, as well as plan ahead and start early.

Additional reviews will be waived, or possible extensions to the final project will be allowed in three cases:

  1. Illness, which has to be documented by a doctor and approved by the university.
  2. Death in the immediate family.
  3. Accomodations for students with disabilities, as prescribed by the university.

No extensions will be given for any other reason.

Honor Code

All enrolled students must complete the academic integrity homework on Gradescope. Course staff will not grade any assignments for a student until this form is received.

Students are encouraged to discuss papers and study together. However, the written critiques and other homeworks must be your own work and handed in individually. The policies below apply to the course project.

In the project you may work as a team. If you work alone, you submit your own work. If you work in a team, what you submit may only have been written by team members, and all team members should understand and have contributed to the code handed in.

Unlike a coding-focused course, such as COMP 530, your work is really the experiment and results more than the code artifact. So using third party code can be ok, if not wise, to accelerate an experiment. For instance, you can build your experiment by modifying Linux; you do not need to first write a new OS kernel from scratch. It is even ok to use someone else's patch to Linux, provided that you clearly document what is your original contribution and what was done elsewhere.

The write-up you and your partner submit must be your own work. Code may be a combination of your work and third-party code, but you must document all third-party sources, as well as what you wrote or changed. Failure to document/attribute which students in the class contributed to the assignment is grounds for all students losing points on the project.

Handing in someone else's work is expressly forbidden.

I am very serious about not tolerating academic dishonesty. Unacceptable collaboration, copying or unapproved use of others results, or failure to attribute sources used to formulate a homework solution will be considered a violation of the UNC Honor Code and will be reported to the Student Attorney General.

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.

Accessibility Resources.

The University of North Carolina at Chapel Hill facilitates the implementation of reasonable accommodations, including resources and services, for students with disabilities, chronic medical conditions, a temporary disability or pregnancy complications resulting in barriers to fully accessing University courses, programs and activities.

Accommodations are determined through the Office of Accessibility Resources and Service (ARS) for individuals with documented qualifying disabilities in accordance with applicable state and federal laws. See the ARS Website for contact information: https://ars.unc.edu or email ars@unc.edu.

Counseling and Psychological Services.

CAPS is strongly committed to addressing the mental health needs of a diverse student body through timely access to consultation and connection to clinically appropriate services, whether for short or long-term needs. Go to their website: https://caps.unc.edu/ or visit their facilities on the third floor of the Campus Health Services building for a walk-in evaluation to learn more. (source: Student Safety and Wellness Proposal for EPC, Sep 2018)

Community Standards in Our Course and Mask Use.

This spring semester, while we are in the midst of a global pandemic, all enrolled students are required to wear a mask covering your mouth and nose at all times in our classroom. This requirement is to protect our educational community — your classmates and me – as we learn together. If you choose not to wear a mask, or wear it improperly, I will ask you to leave immediately, and I will submit a report to the Office of Student Conduct. At that point you will be disenrolled from this course for the protection of our educational community. An exemption to the mask wearing community standard will not typically be considered to be a reasonable accommodation. Individuals with a disability or health condition that prevents them from safely wearing a face mask must seek alternative accommodations through the Accessibility Resources and Service. For additional information, see Carolina Together.

Note: This policy applies to any potential in-person meeting we may have. Online class meetings do not require a mask.

Title IX Resources

Any student who is impacted by discrimination, harassment, interpersonal (relationship) violence, sexual violence, sexual exploitation, or stalking is encouraged to seek resources on campus or in the community. Please contact the Director of Title IX Compliance (Adrienne Allison – Adrienne.allison@unc.edu), Report and Response Coordinators in the Equal Opportunity and Compliance Office (reportandresponse@unc.edu), Counseling and Psychological Services (confidential), or the Gender Violence Services Coordinators (gvsc@unc.edu; confidential) to discuss your specific needs. Additional resources are available at safe.unc.edu.

Disclaimer

The professor reserves to right to make changes to the syllabus, including project due dates and test dates. These changes will be announced as early as possible.

Acknowledgements

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


Last updated: 2021-03-22 10:06:58 -0400 [validate xhtml]