14-712(Operating Systems) Syllabus

Course Meetings

  • Lecture: 1:30-2:50pm ET Tuesdays and Thursdays (CMU-PGH INI-DEC, Use Winthrop St entrance)
  • Lecture: 10:30pm -1:50pm PT Tuesdays and Thursdays (CMU-SV B23-109)

Course Description

This course covers the design and implementation of operating systems with a focus on modern, concurrent kernels. It includes such topics as abstracting and managing work, scheduling, concurrency and synchronization, memory management, device management, storage systems, file systems, caching, protection and security, support for containers and virtual machines, multi-core and multi-processor support, and energy management. It is a project course, providing experience with concurrency, developing and decomposing abstractions, working within an existing complex system, and collaborating in small, e.g. 2-person, teams. Unlike another operating systems course on campus, which builds a modern kernel essentially from scratch, this courses projects will explore the key operating system facilities in the relative isolation of an OS development framework with the goal of maximizing experiential learning within the constraint of this courses more conventional published unit count.

Prerequisites

This course has no formal prerequisites, but it is designed for someone who as taken 15-213, 18-213, 14-513, 15-513, or 18-613, and is otherwise a confident C Language programmer capable of working with a partner, managing time, and managing programming projects that are long in both code and timeline.

Textbook

Operating System Concepts, 10th Edition, by Silberschatz, Galvin, and Gagne

Web Site

http://www.andrew.cmu.edu/course/14-712-s20/

Piazza

https://piazza.com/cmu/spring2020/14712/home

Instructors

Name: Gregory Kesden
Email: gkesden@andrew.cmu.edu
Url: http://www.andrew.cmu.edu/~gkesden
Office: INI 124
Office phone: 412-268-5943
Office hours: Please see schedule on Web for updated information: http://www.andrew.cmu.edu/~gkesden/schedule.html

Please note:
Office hours are times that I do my best to reserve exclusively for "drop in - no appointment" meetings with students, but I am often available at times other than office hours. Please don't hesitate to call or drop by at other times, or to request an appointment. Office hours are convenient -- if they are convenient for you. If not, please, please, please email or call for an appointment, or just take your chances and drop by - you can find my schedule on the Web.

Please remember -- I'm here to help. I appreciate the opportunity to serve you. Do give me the chance.

Please note that my office phone rolls to my cellphone 24x7. Please feel free to call it anytime. I turn it off on those rare occasions when I prefer not to be disturbed.

I am "gkesden" on many of the popular IM systems (AIM, MSN, GTalk, Skype, Yahoo). Please feel free to ping me.

Course Attendance

Attendance is expected at all classes. It is a discussion-oriented class.

Need Help?

I can't stress enough that the course staff, the instructors and TAs, are dedicated to providing you the highest possible levels of support: inside of the classroom and outside. Please, if you need help, do ask.

Assignments and Grading

  • Exams: 40% (midterm and final count equally, 20.0% each)
  • Homework: 10% (All homeworks count equally, 2.5% each)
  • Project: 50% (All four projects count equally, 12.5%, each)

Important note: Because of the importance of understanding both the theoretical and hands-on elements of systems, students must pass all three components of the course (homeworks, exams, and the projects) in order to receive a passing grade for the course. This does not affect the actual letter grade assignment unless one of the components is not completed to a passing standard.

Homework

Homework questions will be released alongside lecture materials, such as slides and notes. You should do them as part of your continuous review of lecture materials and other studying. The questions will be collected and graded four times during the semester. Think of the model as "4 distributed homeworks" (appropriate for a distributed systems class, eh?). The goal is to help you to consistently engage with the material, your peers, and the course staff, rather than giving you the work all at once periodically, which is less valuable for learning and more challenging for time management.

Exams

The exams are designed to be completed in about an hour during a 1.5 hour exam period. The final exam is not especially designed to be cumulative. But, sometimes material does naturally build upon itself, which can lead to some cumulativeness in the exam.

Projects

We will be using the PINTOS project set developed at Stanford. The acknowledgement from the official documentation reads as below:

The Pintos core and this documentation were originally written by Ben Pfaff blp@cs.stanford.edu.

Additional features were contributed by Anthony Romano chz@vt.edu.

The GDB macros supplied with Pintos were written by Godmar Back gback@cs.vt.edu, and their documentation is adapted from his work.

The original structure and form of Pintos was inspired by the Nachos instructional operating system from the University of California, Berkeley ([ Christopher]).

The Pintos projects and documentation originated with those designed for Nachos by current and former CS 140 teaching assistants at Stanford University, including at least Yu Ping, Greg Hutchins, Kelly Shaw, Paul Twohey, Sameer Qureshi, and John Rector.

Example code for monitors (see section A.3.4 Monitors) is from classroom slides originally by Dawson Engler and updated by Mendel Rosenblum.

Grade Corrections

We try to be very, very careful about scoring your work and maintaining your grades. But, we are human and will make mistakes. If you have any questions about grading, please see any member of the course staff.

If possible, s/he will help you "on the spot". But, if s/he want to discuss the issue with other members of the staff, which does occur in many cases, he or she might make a copy of your work and/or ask you to write down or email your concerns. Please don't be alarmed -- this is just to try to ensure correctness and consistency among staffers, as well as prevent miscommunication. If you are asked to provide a copy of the work or feedback in question, or to provide your concerns in writing or email, you are required to do this before your concern can be addressed.

Please keep copies of all of your graded work, electronic submissions, and electronic feedback, until you receive your final course grade and are satisfied that it is correct. Without the original work and the grading information, it is more difficult and time consuming to correct errors.

In general, grading concerns should be addressed within one (1) week. In the special case of the final exam, they should be addressed before the end of the next regular academic semester (fall, winter, spring). The course staff, at its discretion, may refuse to reconsider grades outside of this time period.

Should concerns arise outside of these time periods, but during the semester, please do contact any member of the course staff -- we want to be reasonable and will do our best, within ourt discretion, to help. Should concerns occur after the end of the semester, please contact the instructor.

Collaboration

It is suggested that you form study groups as soon as possible. These groups generally work best if there are between three and five people involved, but sometimes pairs or slightly larger groups can work well. Typically the most effective study groups meet once per week for a few hours, or a couple of times each week for a couple of hours each meeting. For study groups to be effective, each member must work indivudally with the material in-between meetings such that s/he has something to contribute as well as questions to drive the discussion.

Unless otherwise specified, all assignments should be completed individually. In other words, it is okay to collaborate in studying the course material, but the "writing on the page" or the "code in the lab", as examples, should be your own "thought product".

If portions of your individual assignments have been significantly influenced by someone else, you should prominently give them credit for their contribution. Proper attribution is critically important -- and is an absolute defense against charges of "Academic Dishonesty".

Failure to provide proper recognition for the contributions of others towards any graded work may be, at the discretion of course staff, considered Academic Dishonesty under the applicable campus and university policies.

Late Work

You have five (5) "Late Days" for use on assignments this semester. You can use one day on each of four assignments, four days on one assignment, &c. There are no fractional late days -- an assignment 1 second late requires the use of a full late day.

These late days are not "procrastination days". They are instead designed much like "personal days" at work to handle the little things that come up during the semester: short illnesses, injuries, visiting family or friends, a burst of work in other classes, doctors vists, &c.

The use of these days is completely at your discretion -- but, once they are gone, they are gone. That's it. The course staff cannot give you more. Late work is not accepted, other than through the use of "Late Days".

There is, of course, the possibility that exceptions to this policy will arise. We certainly hope that nothing incapacitating will happen to any of you. But, in the event that there is some major life event including major medical issues, emotional problems, family problems, &c, the course staff stands ready to work with you, as appropriate.

But, because these events are major events that likely will affect more than one class, we refer these circumstances to other campus officials, typically academic advisors and/or college deans.

The use of late days on the last project may be limited to ensure the ability of students to prepare for final exams. Stay tuned.

Electronically Mediated Communication

You are not permitted to engage in any electronically mediated communication during class. No TXTing. No IMing. No email. No surfing the Web. No net games. No talking on your cell phone. You get the idea: If something is being communicated and anything even vaguely electronic is involved, it isn't allowed. If you are not comfortable with this -- find a different section or course.

Recording

High-fidelity recordings of class, including any audio and/or video recordings, regardless of the media or format, and regardless of the intended or actual use, are not permitted without prior written permission of the instructor. The class will be notified in advance should any such recording be approved.

This semester, at least one section of the class will be audio and video recorded as part of being telecast between CMU-SV and CMU-PGH. These recordings may, or may not, be made available to students. The instructor will make the decision about if, how and when to release the recordings to enrolled students in a way that balances the benefits from incentivizing attendance with the benefits from the additional resource for learning. (Hint: Good class attendance usually means video is released).

The Most Important things: Well-Being and Happiness

Please take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep, and taking some time to relax. Making those investments will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. If you have a problem, or think you might have a problem, and you don't know what to do, please ask for advice or support.

If you, or anybody you know, need advice or support, please reach out to people you trust, e.g. friends, family members, faculty members, program administrators, academic or student life staff members, RAs or housefellows, professional counselors, clergy, etc.

CMU's Counseling and Psychological Services (CaPS) is available by phone (412-268-2922) 24 hours a day, seven days a week, year-round. If you're not sure whether a particular problem is a "CaPS Problem", it is certainly worth the call to them to find out. If it isn't, they'll help you to find the right resources or to let you know that it'll work out. CaPS is committed to confidentiality.

If you would prefer to speak with somebody not assocated with CMU, you can call the re:solve Crisis Network at 888-796-8226.

If you face a serious emergency, please call the police. Unlike the police in some communities and many countries, the CMU and Pittsburgh Police are highly trained, experienced first-responders able to support members of the community and take the initial steps in responding to any type of crisis or emergent event.

The CMU police can be reached at 412-268-2323. If you are off-campus, you can dial 9-1-1.

If you, or somebody you know, needs advice or support, you can get started by saying/writing, "Greg [or whomever], I'd like some advice".