Revised Syllabus for CSCI 455 Operating Systems
Spring 2015

Cary G. Gray
Office: Science 159, x5875
Office hours: MW 1:00–3:00 p.m.
F 2:00–3:00 p.m.
and by appointment (esp. Tuesday mornings)

You are welcome to stop in when my office door is open.

Class meetings

MWF 8:00–9:05 a.m., Sci 131
Final exam: 8:00–10:00 a.m on Wednesday, May 6

On-line resources

Additional (and updated) course information will be available at the class page at

http://cs.wheaton.edu/˜cgray/csci455/

Text and readings

We will make some use of the following book; purchasing your own copy is recommended:

Anderson and Dahlin, Operating Systems: Principles & Practices/2e, RecursiveBooks, 2014.

Several other operating systems textbooks will be available in the CS lounge.

We will also read a handful of papers from the research literature, which will be available via either the ACM Digital Library or the Usenix Association web service..

Description

CSCI 455 Operating Systems Dynamic process activation, system structure, abstract machine, kernels, performance evaluation, memory management, processor management, time management, recovery procedures, file systems, security, scheduling, device management, networks. Prerequisites: CSCI 335 and CSCI 351.

This is a course about what is inside of operating systems, and the ways in which the ideas, design and implementation are made visible outside. As part of this study, you’ll learn some approaches and techniques that are much more broadly applicable.

Goals and objectives

The goals of this course are for you to:

By the end of the course, you should be able to:

  1. articulate fundamental issues that characterize work in operating systems;
  2. describe the central problems that operating systems address—and explain established approaches for dealing with them;
  3. apply the ideas to design and coding in an operating system or similar software;
  4. better perform and explain analysis of design alternatives;
  5. identify some of the issues and ideas that are currently at the frontier of OS research and development; and
  6. become more capable at working on programs of non-trivial size.

Assessment

I want your grade to reflect both your final mastery of the course material and the degree of responsibility you have shown throughout the semester. Your mastery of the specific objectives will be assessed by exams (principally 1, 2, 4, and 5), by programming assigments (principally 3, 4, and 6); objective 5 will be demonstrated in written and in-class assignments from the research literature.

Programming assignments (40%)

To give you a chance to work with the ideas, you will do four major enhancements to an existing (instructional) operating system called OS/161. Most of these projects will be undertaken in a team of two or three.

I will allow each team three late days, which can be allocated as you wish across all of the assignments. To use late days, however, you must submit a snapshot of your work on time. Beyond the three late days, programs will not be accepted late: the slack time has already been built into the schedule.

Exams (50%)

Two midterm exams are planned in addition to the final, currently scheduled for Feb 9 and Mar 18. They are scheduled to lag behind the material they cover so that there is plenty of time to work with it—including in the programs. All exams will be cumulative. The midterms will total 25% of the course grade; the final will also be 25%.

Other homework (10%)

The remaining assignments and any quizzes wlll count for 10% of your grade.

Reading papers from the research literature will be included in the category. I will identify a small set of papers for all of us to read. You will each be responsible for presenting a summary and leading discussion of on of these papers.

Class preparation and participation You will often have assigned reading, which you need to complete before class. There will be some reading quizzes and short reading-preparation exercises as additional incentive to be be prepared for class.

Additional policies and notes

Attendance and participation

We will start promptly; so be considerate of the rest of us in class by making sure you arrive on time. If you are late, please avoid disrupting whatever is in progress when you come in. I will consider your attendance and participation when computing your final grade; that makes a difference primarily in borderline cases. (On this and other matters, if you have a legitimate reason, I’m willing to work with you, but you have to let me know.)

Workload

Operating systems courses are notorious for how time-consuming the programming work can be. How you approach the programs makes a big difference in how much time they ultimately require. For your survival, it is especially important that you start early, aiming to finish early. Careful planning and design work early also reduces the amount of time spent finding and coping with problems.

I urge (not require) that you keep a work log for this course. For each block of time that you give to the course, record the date, duration (or start/stop times), and activity (e.g., what you read, what problems you worked on, whether you are designing, coding, or testing). When you work with someone else, please indicate that. I’ll ask you occasionally to turn in a copy of your log if you have one.

Academic integrity I expect you to conduct yourself honestly in this course. When you submit work, you assert that it is your own. If you use an outside source or receive assistance, acknowledge it. Deliberate misrepresentation will result in no credit for the assignment; a second offense will result in failing the course. All offenses will be reported and are subject to college disciplinary action as well.

Because you are encouraged to work together and provide each other assistance, you do risk inadvertent plagiarism. Be cautious, especially when you ask for or provide assistance. Make sure that you don’t let someone else do your work for you, and make sure that you don’t do someone else’s work. When you are working in a team, you should make sure that every member of the team understands everything that you turn in. (Talk to me if there are issues with a non-contributing member of the team.)

When you go searching for information (online or in books), look for the ideas, not the OS/161-specific code. (You will do well to avoid even looking at online resources specific to OS/161.) In all cases, simply be sure that you acknowledge clearly whatever sources you draw on or other help you receive.

There are two things that you can do that will eliminate the bulk of the temptations in this area. The first is to avoid procrastination: assignments are given with plenty of time for you to ask questions in class or in my office. The second is to be careful how you ask for help: do not ask other students to tell you the solutions to assigned problems; ask questions to figure out what it is you do not yet understand and in order to understand it. (When giving help, don’t be lazy and give away the answers; help your fellow students to learn.)

You are also responsible for ensuring that your work for this course isn’t available for others to copy without your permission. You will need to make sure that file and directory permissions are set properly in the lab.

Special circumstances and needs Wheaton College is committed to providing reasonable accommodations for students with disabilities. Any student with a documented disability needing academic adjustments is requested to contact the Academic and Disability Services Office as early in the semester as possible. Call 630.752.5941 or email jennifer.nicodem@wheaton.edu for further information.

Gender-neutral language For academic discourse, spoken and written, the faculty expects students to use gender inclusive language for human beings.

Schedule

Here is the initial class schedule as well as the current schedule.